PHP json_decode在不同的服务器上表现不同

时间:2014-04-21 20:56:33

标签: php

我正在设置新服务器,并且发现这段代码在每个设置中的行为都不同:

function isJson($string) {
    json_decode($string);
    return (json_last_error() == JSON_ERROR_NONE);
}

echo isJson("2014-04-21") ? "is json" : "is not json";

旧服务器有:

  • PHP 5.5.5
  • 启用json支持
  • json 1.2.1版
  • 结果:"不是json"
  • var_dump的结果(json_decode(" 2014-04-21")):NULL

新服务器有:

  • PHP 5.5.11
  • 启用json支持
  • json version 1.3.2
  • JSON-C版本(捆绑)0.11
  • 结果:"是json"
  • var_dump的结果(json_decode(" 2014-04-21")):int(2014)

我很感激为什么发生这种差异或 以寻找找出这种差异的原因。

1 个答案:

答案 0 :(得分:1)

这显然是PHP中的一个错误: - /

旧答案:

这更容易......

function isJson($string) {
    return json_decode($string) !== NULL;
}