У меня есть 2 сервера, каждый из которых работает с одним и тем же приложением, и у меня есть функция, возвращающая ответ json.Php json_encode возвращает разные значения на 2 разных серверах для одного и того же объекта
При использовании print_r($object)
я получаю это на обоих серверах:
Array
(
[stats] => Array
(
[6871] => 200
)
[answers] => Array
(
[0] => 7171
)
)
Когда я использую json_encode($object);
я получаю это:
для сервера A:
{"stats":{"6871":200},"answers":["7171"]}
для сервера B:
{"stats":{"6871":200},"answers":[7171]}
Таким образом, один сервер кодирует целочисленное значение answers
как строку.
Серверы работают:
- убунту
- сервер А: Ubuntu 14.04.1 LTS
- сервер В: Ubuntu 13.10
- Nginx
- сервер А: nginx/1.6.2
- сервер В: Nginx/1.5.12
- PHP-FPM
- сервер А: РНР 5.5.9
- сервер В РНР 5.5.3
И Nginx. файлы conf идентичны. Я не могу понять, где проблема, и я сижу на это часами, у кого-нибудь есть мысли?
Сделайте «var_dump», чтобы более четко показать типы на входе. 'print_r' любит скрывать эту информацию от вас. Возможно, ваш вход отличается от двух машин. – cHao