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

การส่งต่อออบเจ็กต์ (Object Serialization) ใน PHP

บทนำ

การแสดงสตริงของอ็อบเจ็กต์ใดๆ ในรูปแบบ 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