PHP 5 и 7 - разница json_last_error - PullRequest
       1

PHP 5 и 7 - разница json_last_error

0 голосов
/ 28 октября 2018

Я пытаюсь обновить одно из моих приложений PHP до PHP7.Все отлично работает, кроме одного.Я вижу, что json_last_error() возвращает другое значение в PHP7.

$input = file_get_contents('php://input');
$json = json_decode($input, true);

print_r(json_last_error());

Когда я делаю

curl 'http://localhost/test.php'  -H 'Content-Type: application/json' --compressed

PHP 5 возвращает 0 (JSON_ERROR_NONE)

PHP 7 возвращает4 (JSON_ERROR_SYNTAX)

Я посмотрел официальную документацию, если есть изменения, но не смог найти какую-либо информацию.

Было ли изменение для json_decode() или json_last_error()функционировать?

1 Ответ

0 голосов
/ 28 октября 2018

Согласно журналу изменений , равному json_decode(), любое строковое значение "ложь" (означающее пустые строки, null и false) приведет к синтаксической ошибке JSON.Так что да, было изменение json_decode() между PHP 5 и PHP 7. json_last_error(), однако, не изменилось.

Журнал изменений в 7.0.0 из json_encode():

Пустая строка или значение PHP, которое после преобразования в строку представляет собой пустую строку (NULL, FALSE), приводит к синтаксической ошибке JSON.

...