我正在使用PHP 5.6,并具有以下代码:
$page->adminNavi[$i]->active = _SITE == $file || _ACTIV_NAVI == $key ? true : false;
在上述行中,我收到以下错误:
从中的空值创建默认对象
如何解决此错误?
答案 0 :(得分:1)
错误是由以下原因引起的:
$page->adminNavi[$i]->active
未设置$page
或对象,或者adminNavi
不是数组,或者adminNavi[$i]
不存在,或者不是stdClass
调试它!
var_dump($page->adminNavi); exit;
如果幸运的话,您将获得一个数组。在这种情况下,请使用var dump array key $i
并查看其中的内容。
更新:好的,所以var dump返回了
array(1) { [0]=> object(stdClass)#2 (1) { ["active"]=> bool(false) } }
$i
会更改多少次?如果它不是0
,则该数组键将不存在,但是您可以像使用它一样立即对其进行引用,并且由于您将其像stdClass
一样对待,因此它会即时创建一个,但会生成警告。
总而言之,通过对数组进行计数来确保$i
存在!如果$i
是通过循环设置的,则如下所示:
for ($i = 0; $i <= count($page->adminNavi): $i++) {
// your code
}