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

อินเตอร์เฟส PHP Serialization


แนะนำตัว

ซีเรียลไลซ์ได้ อินเทอร์เฟซมีอยู่ในไลบรารี PHP เพื่อสร้างคลาสที่จัดทำ serialzing ที่ปรับแต่งได้ ทำให้เป็นอนุกรม()ของ PHP ฟังก์ชันสามารถเรียงลำดับค่าส่วนใหญ่ให้เป็นค่าแทนค่าที่จัดเก็บได้ อย่างไรก็ตาม อ็อบเจ็กต์ของคลาสที่กำหนดโดยผู้ใช้ไม่สามารถทำให้เป็นอนุกรมได้ อินเทอร์เฟซนี้ทำให้เป็นไปได้

ไวยากรณ์

Serializable {
   /* Methods */
   abstract public serialize ( void ) : string
   abstract public unserialize ( string $serialized ) : void
}

วิธีการ

ซีเรียลไลซ์ได้::ซีเรียลไลซ์ — การแสดงสตริงของอ็อบเจ็กต์

ซีเรียลไลซ์ได้::ไม่ซีเรียลไลซ์ — สร้างอ็อบเจ็กต์จากการแทนค่าสตริงแบบอนุกรม

ในตัว serialze() ฟังก์ชั่นสร้างการแสดงค่าที่จัดเก็บได้

serialize ( mixed $value ) : string

unserialize() ฟังก์ชั่นสร้างค่า PHP จากการแสดงที่เก็บไว้

unserialize ( string $str [, array $options ] ) : mixed

ตัวอย่างที่เรียงลำดับได้

ในตัวอย่างต่อไปนี้ ตัวแปรสตริงถูกใช้ในพร็อพเพอร์ตี้ส่วนตัวของ myclass เมื่อฟังก์ชัน serialize() ในตัวใช้วัตถุของคลาสนี้เป็นอาร์กิวเมนต์ เมธอด serialize() จะถูกเรียกโดยอัตโนมัติ ในทำนองเดียวกัน ฟังก์ชัน unserialize() จะสร้างวัตถุขึ้นใหม่ด้วยคุณสมบัติ string prvate

ตัวอย่าง

<?php
class myclass implements Serializable {
   private $arr;
   public function __construct() {
      $this->arr = "TutorialsPoint India (p) Ltd";
   }
   public function serialize() {
      echo "Serializing object..\n";
      return serialize($this->arr);
   }
   public function unserialize($data) {
      echo "Unserializing object..\n";
      $this->arr = unserialize($data);
   }
   public function getdata() {
      return $this->arr;
   }
}
$obj = new myclass;
$serobj = serialize($obj);
var_dump ($serobj);
$obj1 = unserialize($serobj);
var_dump($obj1->getdata());
?>

ผลลัพธ์

โปรแกรมด้านบนแสดงผลลัพธ์ต่อไปนี้

Serializing object..
string(55) "C:7:"myclass":36:{s:28:"TutorialsPoint India (p) Ltd";}"
Unserializing object..
string(28) "TutorialsPoint India (p) Ltd"