json_decode()在不同的环境中返回不同的值

时间:2017-10-24 09:59:33

标签: php json json-deserialization

这对我来说非常令人费解,我不明白为什么会这样。

在我的localhost上运行Windows 8.1企业版,在XAMPP上运行PHP 5.6.15

SELECT IFNULL(SUM( CASE WHEN is_half = 1 THEN 1 ELSE 0 END ),0) halfCount, IFNULL(SUM( CASE 
WHEN is_half = 0 THEN 1 ELSE 0 END ),0) totalCount FROM employee_leave WHERE 
YEAR(leave_date_from) = YEAR(CURRENT_DATE()) AND employee_id="EMP12" AND 
leave_status=1

返回

<?php var_dump(json_decode('26-10-2017'));

在运行Ubuntu 14.04 LTS的Linode盒子上,在LAMP上运行PHP 5.5.9(运行Sentora面板)

我得到了

NULL

我非常感激任何可以向我解释这种现象的人。

我知道这不是有效的JSON,但是,我的目的是了解导致输出差异的原因以及如何避免这种情况。

我试过了int(26) ,事实上我正在尝试

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());

谢谢!

1 个答案:

答案 0 :(得分:0)

检查json_last_error(),它将返回上次JSON编码/解码期间发生的最后一个错误(如果有)。

我希望你能找到一些有趣的事实:) Cheerse !!