未定义的索引:PHP问题

时间:2015-08-11 10:40:05

标签: php indexing undefined isset

看起来这个问题出现了很多,我做了一些搜索,基于这将在$ _POST或$ _GET函数之前放置“isset”。问题出现在我的代码中,我无法弄清楚将它放在何处。

    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 = '';
            }
        }

我得到的错误如下:

  

注意:第65行上的/home/mdfehr/public_html/store/catalog/controller/common/cart.php中的未定义索引:选项警告:为/ home / mdfehr / public_html / store / catalog中的foreach()提供的参数无效第65行/controller/common/cart.php

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

2 个答案:

答案 0 :(得分:1)

替换如下的整个代码。

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 = '';
        }
    }
}

答案 1 :(得分:0)

在使用值之前,只需将isset片段放好。在此特定方案中,将其放在代码段的第一行之前。如果它也出现在其他部分中,请将这些prat放在带有isset的if语句中。