Php 如何解决“问题”;从“中的空值”创建默认对象;错误?
我使用的是PHP5.6,代码如下:Php 如何解决“问题”;从“中的空值”创建默认对象;错误?,php,Php,我使用的是PHP5.6,代码如下: $page->adminNavi[$i]->active = _SITE == $file || _ACTIV_NAVI == $key ? true : false; 在上述行中,我收到以下错误: 从中的空值创建默认对象 如何修复此错误?此错误源于: $page->adminNavi[$i]->active $page不是设置或对象,或者adminNavi不是数组,或者adminNavi[$i]不存在,或者不是stdCla
$page->adminNavi[$i]->active = _SITE == $file || _ACTIV_NAVI == $key ? true : false;
在上述行中,我收到以下错误:
从中的空值创建默认对象
如何修复此错误?此错误源于:
$page->adminNavi[$i]->active
$page
不是设置或对象,或者adminNavi
不是数组,或者adminNavi[$i]
不存在,或者不是stdClass
调试它
var\u dump($page->adminNavi);退出代码>
幸运的话,你会得到一个数组。在这种情况下,var转储数组键$i
,并查看其中的内容
更新:好的,那么var转储返回这个
$i
改变了多少次?如果它不是0
,则该数组键将不存在,但您会立即像引用它一样引用它,并且由于您将其视为stdClass
,因此它会动态创建一个数组键,但会生成警告
综上所述,通过对数组进行计数,确保存在$i
!如果从循环中设置了$i
,则如下所示:
for ($i = 0; $i <= count($page->adminNavi): $i++) {
// your code
}
for($i=0;$i adminNavi):$i++){
//你的代码
}
错误是什么?是否定义了\u SITE
和\u ACTIV\u NAVI
常量?可能应该是\u ACTIVE\u NAVI
?您忘记提供错误。您不需要三元\u ACTIV\u NAVI==$key?真:假代码>。就其本身而言,\u ACTIV\u NAVI=$key
返回true或false alreadyEither$page
不是对象,或者$page->adminNavi[$i]
不是对象。调试你的代码。数组(1){[0]=>object(stdClass)#2(1){[“active”]=>bool(false)}}$page->adminNaviupdated看看
for ($i = 0; $i <= count($page->adminNavi): $i++) {
// your code
}