儲存 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"}

更新於:2019-12-30

409 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.