У меня проблема: Я выполняю итерацию через массив действительных объектов, используя 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 даже эхо больше не работает.
ОБНОВЛЕНИЕ: Решено. Если посмотреть на клиентскую часть приложения, возникла проблема с нажатием значений NULL в массиве $ schema-> node, которые, конечно же, не являются объектами.
@MinaAbadir прав, вас 'Отсутствует свойство data в вашем объекте JSON с php'ed. В противном случае вы не добавляете нужный объект данных, к которому вы обращаетесь, ... –
, но после этого '$ node' был правильно сброшен, поэтому' $ schema' должно быть хорошо. Вероятно, это подмножество кода отлично. –
1) Пожалуйста, покажите нам свое полное сообщение об ошибке, которое вы получите. 2) Является ли ваш код только циклом 1 итерации? Или у вас есть больше объектов, и вы смотрите на неправильный. 3) Также, если вы делаете 'var_dump();' пожалуйста, возьмите вывод из исходного кода и опубликуйте его здесь. – Rizier123