尽管使用'if(isset),但仍接收Apache php错误通知

时间:2013-08-13 20:39:41

标签: php apache

我的Apache日志中包含以下通知:

  

[Sun Aug 11 09:11:36 2013] [错误] [client 127.0.0.1] PHP注意:未定义的索引:在第59行的/var/www/components/com_content/router.php中查看

这是引用的代码位:

    if (($menuItem instanceof stdClass) && $menuItem->query['view'] == $query['view'] && isset($query['id']) && $menuItem->query['id'] == (int) $query['id'])ug

    {       
            unset($query['view']);

            if (isset($query['catid']))
            {       
                    unset($query['catid']);
            }

            if (isset($query['layout']))
            {       
                    unset($query['layout']);
            }

            unset($query['id']);

            return $segments;
    }

从我读过的内容来看,isset是最常见的解决方案,但它并没有什么不同。其他人遇到过解决方案吗?

2 个答案:

答案 0 :(得分:1)

isset()检查后立即移动stdClass支票。

换句话说,改变

($menuItem instanceof stdClass) && $menuItem->query['view'] == $query['view'] && isset($query['id']) && $menuItem->query['id'] == (int) $query['id'])

($menuItem instanceof stdClass) && isset($query['id']) && $menuItem->query['view'] == $query['view'] && $menuItem->query['id'] == (int) $query['id'])

答案 1 :(得分:0)

您指的是view$menuItem->query中的$query索引,PHP抱怨Undefined index: view,所以我假设其中一个或两个变量都没有有一个view索引。