函式名稱: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 解碼是否成功。