我的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是最常见的解决方案,但它并没有什么不同。其他人遇到过解决方案吗?
答案 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
索引。