【发布时间】:2017-10-24 09:59:32
【问题描述】:
这让我很困惑,我不明白为什么会这样。
在我的本地主机上,它在 XAMPP 上运行带有 PHP 5.6.15 的 Windows 8.1 企业版
<?php var_dump(json_decode('26-10-2017'));
返回
NULL
在 LAMP 上运行 Ubuntu 14.04 LTS 和 PHP 5.5.9 的 Linode 机器上(运行 Sentora 面板)
我明白了
int(26)
我非常感谢任何能解释我这一现象的人。
我知道这不是有效的 JSON,但是,我的目的是了解导致这种输出差异的原因以及如何避免这种情况。
我试过json_last_error(),其实我在尝试
function isValidJSON($string) {
json_decode($string);
return (json_last_error() == JSON_ERROR_NONE);
}
但是,它似乎没有显示任何错误。
<?php var_dump(json_decode('26-10-2017')); var_dump(json_last_error());
返回
int(26)
int(0)
谢谢!
【问题讨论】:
-
这不是有效的 JSON 开头。为什么它返回不同值的问题很有趣(也许是 HHVM 与 PHP 本身,和/或不同的版本……?),但最终这根本不应该工作。
-
FWIW,只有部分 5.2.x 版本在此处返回
null以外的任何内容:3v4l.org/Y0DEH - 无论哪种方式,这都是一个 PHP 错误。
标签: php json json-deserialization