儲存 PHP 陣列的首選方法(json_encode 還是 serialize)?\n
這取決於手頭的需求。
除非滿足以下條件,否則 JSON 比 PHP 序列化更快:
- 儲存深度巢狀的陣列。
- 儲存的物件需要反序列化為正確的類。
- 互動涉及不支援 json_decode 的舊版 PHP。
下面的程式碼行可用於使用 json_encode 儲存 PHP 陣列:
json_encode($array, JSON_UNESCAPED_UNICODE)
JSON 不會在任何地方儲存物件的原始類,但可以將其還原為屬於 stdClass 的類例項。
為什麼使用 json_encode 而不是序列化?
- 與序列化相比,JSON 的可移植性要高得多。
- 使用 JSON 無法利用 __sleep() 和 __wakeup() 的特性。
- 預設情況下,公有屬性會使用 JSON 序列化。(如果 PHP 版本 >=5.4,則可實現 JsonSerializable 以更改行為)。
示例
<?php // Array is declared $value = array( "name"=>"name_me", "email"=>"myemail.com" ); // json_encode() function is used $json = json_encode($value); // Displaying output echo($json); ?>
輸出
將產生以下輸出:
{"name":"name_me","email":"myemail.com"}
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP