С помощью этого кода я выполняю итерацию через объект.
Работает:
Он не работает на моем рабочем столе:
$incomingData = json_decode($_POST['data']); foreach($incomingData as $key => $action) { }
Недопустимый аргумент для foreach ()
Возможно, на одном из ваших серверов есть magic_quotes_gpc, поэтому вы можете попытаться использовать stripslashes на $ _POST ['data'] перед его расшифровкой. Обе версии PHP должны иметь возможность итерации через объекты.
Вы уверены, что у вас есть свои версии PHP правильно?
Из документации для foreach
:
Начиная с PHP 5, можно также перебирать объекты.
Попробуйте использовать json_decode
со вторым аргументом, установленным в true
, чтобы json_decode
возвращал ассоциативные массивы, а не объекты.
$incomingData = json_decode($_POST['data'], true);
Если второй аргумент, $assoc
(по умолчанию false
) означает:
Когда
TRUE
, возвращенные объекты будут преобразованы в ассоциативные массивы.
Я предполагаю, что в одной коробке меньше PHP 5.
Чтобы подтвердить это, попробуйте изменить $incomingData
на какой-то безобидный ассоциативный массив:
$incomingData = array("foo" => "bar", "baz" => "monkey");
и посмотрите, удастся ли эта ошибка.
попробуйте сделать:
$ data_array = get_object_vars (json_decode ($ json_data)); print_r ($ data_array); это только в том случае, если вы получаете информацию с некоторой веб-страницы, например $ data = file_get_contents ('http://www.someurl.com/somerestful_url/'); $ data_array = get_object_vars (json_decode ($ data)); print_r ($ data_array);
Кроме того, вы, вероятно, пытались сделать json_encode, но вместо этого поставили json_decode ($ _ POST ['data']);
если у вас нет строки json внутри $ _POST ['data']; это не будет работать.