未定义索引:PHP 问题

Undefined index: PHP Issue

看起来这个问题经常出现,我做了一些搜索,并基于此将 "isset" 放在 $ _POST 或 $ _GET 函数之前。问题出在我的代码中,我不知道该放在哪里。

    foreach ($product['option'] as $option) {
        if ($option['type'] != 'file') {
            $value = $option['value'];
        } else {
            $upload_info = $this->model_tool_upload->getUploadByCode($option['value']);

            if ($upload_info) {
                $value = $upload_info['name'];
            } else {
                $value = '';
            }
        }

我得到的错误如下:

Notice: Undefined index: option in /home/mdfehr/public_html/store/catalog/controller/common/cart.php on line 65Warning: Invalid argument supplied for foreach() in /home/mdfehr/public_html/store/catalog/controller/common/cart.php on line 65

第 65 行将是我发布的代码中的第一行。我在其他两个地方也有同样的错误,但我希望我从这里的建议中学到的东西可以帮助我解决这些问题。

只需将 isset 放在使用值之前即可。在这种特殊情况下,将它放在代码片段第一行之前。如果它也发生在其他部分,请将这些错误放在带有 isset 的 if 语句中。

按如下方式替换整个代码。

if(isset($product['option']) && is_array($product['option']))
{
    foreach ($product['option'] as $option) {
        if ($option['type'] != 'file') {
            $value = $option['value'];
        } else {
        $upload_info = $this->model_tool_upload->getUploadByCode($option['value']);

        if ($upload_info) {
            $value = $upload_info['name'];
        } else {
            $value = '';
        }
    }
}