Почему этот код работает в версии PHP 5.2.10, а не в версии PHP 5.2.10-2?

С помощью этого кода я перебираю объект. Почему это работает на моей машине WAMP с PHP 5.2.10, а не на моей установке Ubuntu 9.10 с PHP 5.2.10-2 из репозитория?

$incomingData = json_decode($_POST['data']);

foreach($incomingData as $key => $action)
{

}

Недопустимый аргумент для foreach()


person Community    schedule 07.12.2009    source источник
comment
Я предполагаю, что это как-то связано с частью json_decode, но я также предполагаю, что вы можете спросить об этом в Stack Overflow, а не здесь.   -  person wzzrd    schedule 07.12.2009


Ответы (1)


wzzrd правильно. Вероятно, это должно быть в stackoverflow, и проблема будет заключаться в том, что возвращаемое значение из json_decode не будет таким, как вы ожидали.

Из http://php.net/json_decode

Возвращает значение, закодированное в json, в соответствующем типе PHP. Значения true, false и null (без учета регистра) возвращаются как TRUE, FALSE и NULL соответственно. NULL возвращается, если json не может быть декодирован или если закодированные данные глубже предела рекурсии.

Вы делаете один и тот же запрос на обоих серверах (&data=xxx точно такой же)? Это будет первое, что нужно проверить.

Предполагая, что да, ваш php.ini похож?

magic_quotes_gpc=1 изменит $_GET/$_POST/$_COOKIE и, вероятно, является виновником.

person Community    schedule 07.12.2009