บทนำ
การแสดงสตริงของอ็อบเจ็กต์ใดๆ ในรูปแบบ byte-stream ได้รับโดยฟังก์ชัน serialize() ใน PHP ตัวแปรคุณสมบัติทั้งหมดของอ็อบเจ็กต์อยู่ในสตริง และเมธอดไม่ถูกบันทึก สตริงนี้สามารถจัดเก็บในไฟล์ใดๆ ได้
เพื่อเรียกคืนอ็อบเจ็กต์จาก byte stream มีฟังก์ชัน unserialize() การกำหนดของคลาสที่สอดคล้องต้องพร้อมใช้งานก่อนเรียกฟังก์ชัน unserialize()
ตัวอย่าง
ขั้นแรก ให้ serialize อ็อบเจ็กต์ของคลาสต่อไปนี้และเก็บสตริงในไฟล์:
<?php class test1{ private $name; function __construct($arg){ $this->name=$arg; } } $obj1=new test1("Kiran"); $str=serialize($obj1); $fd=fopen("obj.txt","w"); fwrite($fd, $str); fclose($fd); ?>
ในโฟลเดอร์ปัจจุบัน obj.txt ถูกสร้างขึ้น เพื่อ unserialize โค้ดต่อไปนี้สร้างอ็อบเจ็กต์ใหม่จาก byte stream ที่อ่านจากไฟล์ที่กำหนด:
ตัวอย่าง
<?php class test1{ private $name; function __construct($arg){ $this->name=$arg; } function getname(){ return $this->name; } } $filename="obj.txt"; $fd=fopen("obj.txt","r"); $str=fread($fd, filesize($filename)); $obj=unserialize($str); echo "name: '" . $obj->getname(); ?>
ผลลัพธ์
name: Kiran