我遇到以下问题: 我使用foreach遍历有效对象数组。当试图访问结果对象或它们的属性时,我收到了我将尝试访问非对象的通知。PHP尝试获取有效对象的非对象属性
下面是代码:
$schema = json_decode($_POST['d']);
foreach ($schema->node as $node) {
var_dump($node);
if ($node->status == 1) {
$data = $node->id;
}
}
的var_dump输出以下:预先
object(stdClass)#5 (6) {
["status"]=>
int(0)
["id"]=>
int(1)
["title"]=>
string(6) "Sensor"
["script"]=>
string(24) "from eZness import swag;"
["x"]=>
int(60)
["y"]=>
int(80)
}
感谢。
UPDATE:
$schema = json_decode($_POST['d']);
foreach ($schema->node as $node) {
var_dump($node);
echo $node->status; //Funnily this works
$status = $node->status; //while this doesn't
if ($node->status == 1) { //and this doesn't as well
$data = $node->id;
}
}
但在取出时的var_dump甚至回声不工作了。
更新: 已解决。看看应用程序的客户端部分,在$ schema-> node数组中推入NULL值时出现问题,这当然是非对象。
@MinaAbadir是正确的,你'你的php'ed JSON对象缺少'data'属性。否则,你并没有添加你所指的正确的数据对象...... –
但是'$ node'之后被正确地转储了,所以'$ schema'应该没问题。可能这个代码子集很好。 –
1)请向我们展示您获得的完整错误消息2)您的代码是否仅循环1次迭代?或者你有更多的对象,你看错了3)另外,如果你做'var_dump();'请从源代码的输出,并在这里发布 – Rizier123