函数名称:json_last_error()
函数描述:json_last_error() 函数用于获取最后发生的 JSON 编码或解码操作的错误代码。
适用版本:该函数在 PHP 5 >= 5.3.0, PHP 7 中可用。
语法:int json_last_error ( void )
参数:该函数不接受任何参数。
返回值:返回一个整数,表示最后发生的 JSON 操作的错误代码。如果没有错误发生,则返回 JSON_ERROR_NONE。
错误代码及对应的含义:
- JSON_ERROR_NONE:没有错误发生。
- JSON_ERROR_DEPTH:到达了最大堆栈深度。
- JSON_ERROR_STATE_MISMATCH:无效或异常的 JSON。
- JSON_ERROR_CTRL_CHAR:控制字符错误,可能是编码问题。
- JSON_ERROR_SYNTAX:语法错误。
- JSON_ERROR_UTF8:异常的 UTF-8 字符,可能是因为不正确的编码。
- JSON_ERROR_RECURSION:一个或多个递归引用。
- JSON_ERROR_INF_OR_NAN:一个或多个 NAN 或 INF 值。
- JSON_ERROR_UNSUPPORTED_TYPE:无法编码的类型。
- JSON_ERROR_INVALID_PROPERTY_NAME:无效的属性名。
- JSON_ERROR_UTF16:异常的 UTF-16 字符,可能是因为不正确的编码。
示例:
$jsonString = '{"name":"John","age":30,"city":"New York"}';
$jsonData = json_decode($jsonString);
if (json_last_error() === JSON_ERROR_NONE) {
echo "JSON 解码成功!";
} else {
echo "JSON 解码失败,错误代码:" . json_last_error();
}
输出:
JSON 解码成功!
以上示例中,我们首先定义了一个包含 JSON 格式数据的字符串 $jsonString。然后,我们使用 json_decode() 函数将其解码为 PHP 对象。接着,我们使用 json_last_error() 函数来获取最后发生的 JSON 操作的错误代码。最后,我们通过判断错误代码是否为 JSON_ERROR_NONE 来确定 JSON 解码是否成功。