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

การเก็บอ็อบเจกต์ในเซสชัน PHP


ฟังก์ชัน 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" }