空字符串上的JSON解码与PHP 7的行为不同

mes*_*ssy 8 php json

PHP 5.6的结果

json_decode('', true);
echo last_json_error(); // 0
Run Code Online (Sandbox Code Playgroud)

PHP 7.0的结果

json_decode('', true);
echo last_json_error(); // 4
Run Code Online (Sandbox Code Playgroud)

我检查了PHP 7的更改日志(https://github.com/tpunt/PHP7-Reference),但找不到原因.JSON被JSOND取代,但BC破坏列表没有提到!?

澄清一下:我的问题不是关于有效/无效的JSON.这是关于我无法找到的PHP的行为变化.

小智 2

它被标记为错误并已修复:https://bugs.php.net/bug.php ?id=68938

您可以在此处找到更改日志:http://php.net/ChangeLog-7.php#7.0.0(搜索 json_decode)

  • 总结一下:意外行为出现在 5.6.5 中——空 json 字符串_应该_抛出错误。 (3认同)