PHP json_last_error() 函数

定义和用法

json_last_error() 函数返回最后发生的错误。

实例

返回最后发生的错误:

<?php
// 无效的 json 字符串
$string = "{'Bill':35,'Elon':37,'Joe':43}";

echo "Decoding: " . $string;
json_decode($string);
echo "<br>错误:";

switch (json_last_error()) {
  case JSON_ERROR_NONE:
    echo "没有错误";
    break;
  case JSON_ERROR_DEPTH:
    echo "超出最大堆栈深度";
    break;
  case JSON_ERROR_STATE_MISMATCH:
    echo "无效的或格式错误的 JSON";
    break;
  case JSON_ERROR_CTRL_CHAR:
    echo "控制字符错误";
    break;
  case JSON_ERROR_SYNTAX:
    echo "语法错误";
    break;
  case JSON_ERROR_UTF8:
    echo "格式错误的 UTF-8 字符";
    break;
  default:
    echo "未知错误";
    break;
}
?>

运行实例

语法

json_last_error()

参数值

无。

技术细节

返回值:

返回一个整数,该值可以是以下常量之一:

  • JSON_ERROR_NONE(没有发生错误)
  • JSON_ERROR_DEPTH(超出最大堆栈深度)
  • JSON_ERROR_STATE_MISMATCH(无效的/格式错误的 JSON)
  • JSON_ERROR_CTRL_CHAR(控制字符错误)
  • JSON_ERROR_SYNTAX(语法错误)
  • JSON_ERROR_UTF8(格式错误的 UTF-8 字符。PHP 5.3)
  • JSON_ERROR_RECURSION(无效的递归引用值。PHP 5.5)
  • JSON_ERROR_INF_OR_NAN(无效的 nan 或 inf 值。PHP 5.5)
  • JSON_ERROR_UNSUPPORTED_TYPE(无效的类型。PHP 5.5)
  • JSON_ERROR_INVALID_PROPERTY_NAME(无效的属性名称。PHP 7.0)
  • JSON_ERROR_UTF16(格式错误的 UTF-16 字符。PHP 7.0)
PHP 版本: 5.3+