json_last_error() 函數可以返回最後發生的錯誤。
用法
int json_last_error( void )
json_last_error() 函數可以返回上次 JSON 編碼/解碼期間發生的最後一個錯誤(如果有)。
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 字符,可能編碼不正確
- JSON_ERROR_RECURSION - 要編碼的值中的一個或多個遞歸引用
- JSON_ERROR_INF_OR_NAN - 要編碼的值中的一個或多個 NAN 或 INF 值
- JSON_ERROR_UNSUPPORTED_TYPE - 給出了無法編碼的類型值
- JSON_ERROR_INVALID_PROPERTY_NAME - 給出了無法編碼的屬性名稱
- JSON_ERROR_UTF16 - 格式錯誤的 UTF-16 字符,可能編碼不正確
示例
<?php
// A valid json string
$json[] = '{"First Name":"Adithya"}';
// An invalid json string which causes an syntax
// error, in this case we used ' instead of " for quotation
$json[] = "{First Name':'Adithya'}";
foreach($json as $string) {
echo "Decoding:" . $string;
json_decode($string);
switch(json_last_error()) {
case JSON_ERROR_NONE:
echo " - No errors";
break;
case JSON_ERROR_STATE_MISMATCH:
echo " - Underflow or the modes mismatch";
break;
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;
default:
echo " - Unknown error";
break;
}
echo PHP_EOL;
}
?>
輸出
Decoding:{"First Name":"Adithya"} - No errors Decoding:{First Name':'Adithya'} - Syntax error, malformed JSON
相關用法
- PHP json_last_error_msg()用法及代碼示例
- PHP json_encode()用法及代碼示例
- PHP json_decode()用法及代碼示例
- PHP jdtogregorian()用法及代碼示例
- PHP jdtojulian()用法及代碼示例
- PHP jddayofweek()用法及代碼示例
- PHP juliantojd()用法及代碼示例
- PHP jdmonthname()用法及代碼示例
- PHP jdtofrench()用法及代碼示例
- PHP jpeg2wbmp()用法及代碼示例
- PHP join()用法及代碼示例
- PHP jdtounix( )用法及代碼示例
- PHP jdtojewish()用法及代碼示例
- PHP jewishtojd()用法及代碼示例
- PHP PHPUnit assertIsNotFloat()用法及代碼示例
- PHP disk_total_space()用法及代碼示例
- PHP ReflectionClass getTraitAliases()用法及代碼示例
- PHP hash_hmac()用法及代碼示例
注:本文由純淨天空篩選整理自 PHP - json_last_error() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。