這篇文章給大家分享的是PHP中json_encode和json_decode錯誤處理方法,json_encode和json_decode都是PHP中很常用的函數(shù),具體方法這里就不介紹了,本文主要分享錯誤處理的方法,感興趣的朋友接下來跟隨小編一起了解看看吧。
平時我們在使用這兩個方法的時候可能沒怎么注意錯誤處理,有時候如果傳入的參數(shù)格式不正確就會導(dǎo)致報錯了。下面是錯誤處理的方式:
json_last_error ― 返回最后發(fā)生的錯誤,如果有,返回 JSON 編碼解碼時最后發(fā)生的錯誤。
int json_last_error ( void )
常量 | 含義 | 可用性 |
---|---|---|
JSON_ERROR_NONE | 沒有錯誤發(fā)生 | |
JSON_ERROR_DEPTH | 到達了最大堆棧深度 | |
JSON_ERROR_STATE_MISMATCH | 無效或異常的 JSON | |
JSON_ERROR_CTRL_CHAR | 控制字符錯誤,可能是編碼不對 | |
JSON_ERROR_SYNTAX | 語法錯誤 | |
JSON_ERROR_UTF8 | 異常的 UTF-8 字符,也許是因為不正確的編碼。 | PHP 5.3.3 |
JSON_ERROR_RECURSION | One or more recursive references in the value to be encoded | PHP 5.5.0 |
JSON_ERROR_INF_OR_NAN | One or more NAN or INF values in the value to be encoded | PHP 5.5.0 |
JSON_ERROR_UNSUPPORTED_TYPE | 指定的類型,值無法編碼。 | PHP 5.5.0 |
JSON_ERROR_INVALID_PROPERTY_NAME | 指定的屬性名無法編碼。 | PHP 7.0.0 |
JSON_ERROR_UTF16 | 畸形的 UTF-16 字符,可能因為字符編碼不正確。 | PHP 7.0.0 |
<?php // 一個有效的 json 字符串 $json[] = '{"Organization": "PHP Documentation Team"}'; // 一個無效的 json 字符串會導(dǎo)致一個語法錯誤,在這個例子里我們使用 ' 代替了 " 作為引號 $json[] = "{'Organization': 'PHP Documentation Team'}"; 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_DEPTH: echo ' - Maximum stack depth exceeded'; break; case JSON_ERROR_STATE_MISMATCH: echo ' - Underflow or the modes mismatch'; 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_UTF8: echo ' - Malformed UTF-8 characters, possibly incorrectly encoded'; break; default: echo ' - Unknown error'; break; } echo PHP_EOL; }
以上就是關(guān)于PHP中json_encode和json_decode錯誤處理方法,需要的朋友可以了解看看,希望對大家學(xué)習PHP有幫助,想要了解更多可以繼續(xù)瀏覽群英網(wǎng)絡(luò)其他相關(guān)的文章。