函式說明
(PHP5 >= 5.3.0)
返回最後一次以json編碼數據發生的錯誤。
函式定義
int json_last_error ( void )
返回最後一次發生的錯誤,如果遇到在以json編碼數據發生的錯誤。
此函式沒有參數。
返回值返回一個integer,此值是以下一個常數:
常數 | 意義 | 有效性 |
JSON_ERROR_NONE | 沒有錯誤發生 |  |
JSON_ERROR_DEPTH | 超過了最大堆疊深度 |  |
JSON_ERROR_CTRL_CHAR | 發生控制特性錯誤,可能是有誤的編碼 |  |
JSON_ERROR_STATE_MISMATCH | 無效的或者是有缺陷的json |  |
JSON_ERROR_SYNTAX | 發生語法錯誤 |  |
JSON_ERROR_UTF8 | 有缺陷的UTF-8編碼特性,也可能是有誤的編碼 | PHP 5.3.3 |
實例說明
json_last_error()函式對不同integer值返回的結果。
<?php
// A valid json string
$json[] = '{"Organization": "PHP Documentation Team"}';
// An invalid json string which will cause an syntax
// error, in this case we used ' instead of " for quotation
$json[] = "{'Organization': 'PHP Documentation Team'}";
foreach($json as $string)
{
echo 'Decoding: ' . $string;
json_decode($string);
switch(json_last_error())
{
case JSON_ERROR_DEPTH:
echo ' - Maximum stack depth exceeded';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - Unexpected control character found';
break;
case JSON_ERROR_SYNTAX:
echo ' - Syntax error, malformed JSON';
break;
case JSON_ERROR_NONE:
echo ' - No errors';
break;
}
echo PHP_EOL;
}
?>
以上例程會輸出:
Decoding: {"Organization": "PHP Documentation Team"} - No errors
Decoding: {'Organization': 'PHP Documentation Team'} - Syntax error, malformed JSON