Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

วิธีที่ต้องการในการจัดเก็บอาร์เรย์ PHP (json_encode หรือทำให้เป็นอนุกรม)?


ขึ้นอยู่กับความต้องการในมือ

JSON เร็วกว่าเมื่อเปรียบเทียบกับการทำให้เป็นอนุกรมของ PHP เว้นแต่จะเป็นไปตามเงื่อนไขต่อไปนี้

  • อาร์เรย์ที่ซ้อนกันอย่างลึกจะถูกเก็บไว้
  • อ็อบเจ็กต์ที่เก็บไว้ต้อง unserialized กับคลาสที่เหมาะสม
  • การโต้ตอบเกิดขึ้นระหว่าง PHP เวอร์ชันเก่าที่ไม่สนับสนุน json_decode

บรรทัดด้านล่างของรหัสสามารถใช้เพื่อจัดเก็บอาร์เรย์ PHP โดยใช้ json_encode−

json_encode($array, JSON_UNESCAPED_UNICODE)

JSON ไม่ได้จัดเก็บคลาสดั้งเดิมของวัตถุไว้ที่ใด แต่สามารถกู้คืนได้เป็นอินสแตนซ์ของคลาสที่เป็นของ stdClass

เหตุใดจึงใช้ json_encode แทนการทำให้เป็นอนุกรม

  • JSON พกพาสะดวกกว่าเมื่อเปรียบเทียบกับการทำให้เป็นอนุกรม
  • ไม่สามารถใช้คุณสมบัติของ __sleep() และ __wakeup() โดยใช้ JSON
  • โดยค่าเริ่มต้น คุณสมบัติสาธารณะจะถูกจัดลำดับด้วย 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"}