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

การจัดเก็บวัตถุในเซสชัน PHP


สามารถใช้ฟังก์ชัน serialize() ใน PHP ก่อนจัดเก็บอ็อบเจ็กต์ และสามารถเรียกใช้ฟังก์ชัน unserialize() ได้เมื่อต้องดึงอ็อบเจ็กต์จากเซสชัน

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

การใช้ฟังก์ชัน serialize เพื่อจัดเก็บวัตถุ -

session_start();
$object = new sample_object();
$_SESSION['sample'] = serialize($object);

เซสชันเริ่มต้นโดยใช้ฟังก์ชัน 'session_start' และสร้างวัตถุใหม่ อ็อบเจ็กต์ที่สร้างจะถูกทำให้เป็นอนุกรมโดยใช้ฟังก์ชัน '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' และอ็อบเจ็กต์ที่สร้างไว้ก่อนหน้านี้ ซึ่งถูกทำให้เป็นอนุกรมโดยการกำหนดให้กับตัวแปร _SESSION จะไม่จัดซีเรียลโดยใช้ฟังก์ชัน '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" }