ฟังก์ชัน serialize() ใน PHP สามารถใช้ก่อนเก็บอ็อบเจกต์ และฟังก์ชัน unserialize() เรียกเมื่อต้องการดึงอ็อบเจกต์จากเซสชัน
ฟังก์ชันนี้แปลงการแทนค่าที่จัดเก็บได้ของค่าเฉพาะเป็นลำดับบิต ทำเพื่อให้ข้อมูลสามารถจัดเก็บในไฟล์ บัฟเฟอร์หน่วยความจำ หรือส่งผ่านเครือข่ายได้
การใช้ serialize เพื่อเก็บอ็อบเจกต์:
session_start(); $object = new sample_object(); $_SESSION['sample'] = serialize($object);
เริ่มเซสชันด้วย 'session_start' สร้างอ็อบเจกต์ใหม่ อ็อบเจกต์ที่สร้างถูก serialize ด้วยฟังก์ชัน 'serialize' และกำหนดให้ตัวแปร _SESSION
ตัวอย่าง
<?php $data = serialize(array("abc", "defgh", "ijkxyz")); echo $data; ?>ผลลัพธ์
จะได้ผลลัพธ์ดังนี้:
a:3:{i:0;s:3:"abc";i:1;s:5:"defgh";i:2;s:6:"ijkxyz";}การใช้ unserialize เพื่อดึงอ็อบเจกต์:
session_start(); $object = unserialize($_SESSION['sample']);
เริ่มเซสชันด้วย 'session_start' อ็อบเจกต์ที่สร้างไว้ก่อนหน้านี้ ที่ serialize โดยกำหนดให้ _SESSION ถูก unserialize ด้วยฟังก์ชัน 'unserialize':
ตัวอย่าง
<?php $data = serialize(array("abc", "defgh", "ijkxuz")); echo $data . "<br>"; $test = unserialize($data); var_dump($test); ?>ผลลัพธ์
จะได้ผลลัพธ์ดังนี้:
a:3:{i:0;s:3:"abc";i:1;s:5:"defgh";i:2;s:6:"ijkxuz";} array(3) { [0]=> string(3) "abc" [1]=> string(5) "defgh" [2]=> string(6) "ijkxuz" }