357 of 410 menu

วิธี __serialize

เมธอดเมจิก __serialize ถูกเรียกเมื่อซีเรียลไลซ์อ็อบเจ็กต์ ด้วยฟังก์ชัน serialize มันควรส่งคืนอาร์เรย์ของข้อมูลที่จะ ถูกซีเรียลไลซ์ เมธอดนี้ปรากฏใน PHP 7.4 ในฐานะทางเลือกแทน เมธอด __sleep โดยมีการควบคุมกระบวนการซีเรียลไลเซชันที่ยืดหยุ่นกว่า

ไวยากรณ์

public function __serialize(): array

ตัวอย่าง

สร้างคลาสด้วยเมธอด __serialize ซึ่งจะกำหนดว่า คุณสมบัติใดของอ็อบเจ็กต์ที่จำเป็นต้องซีเรียลไลซ์:

<?php class User { public $name; private $password; public $email; public function __construct($name, $password, $email) { $this->name = $name; $this->password = $password; $this->email = $email; } public function __serialize(): array { return [ 'name' => $this->name, 'email' => $this->email, 'hash' => md5($this->password) ]; } } $user = new User('John', 'secret123', 'john@example.com'); echo serialize($user); ?>

ผลลัพธ์จากการรันโค้ด:

'O:4:"User":3:{s:4:"name";s:4:"John";s:5:"email";s:15:"john@example.com";s:4:"hash";s:32:"e5e9fa1ba31ecd1ae84f75caaa474f3a";}'

ตัวอย่าง

สาธิตความแตกต่างระหว่าง __serialize และ __sleep:

<?php class Product { public $id; protected $price; private $discount; public function __sleep() { return ['id', 'price']; } public function __serialize(): array { return [ 'id' => $this->id, 'price' => $this->price * (1 - $this->discount) ]; } } $product = new Product(); $product->id = 100; $product->price = 50; $product->discount = 0.1; echo "Sleep: " . serialize($product) . "\n"; echo "Serialize: " . serialize($product); ?>

ผลลัพธ์จากการรันโค้ด:

'Sleep: O:7:"Product":2:{s:2:"id";i:100;s:5:"price";i:50;}' 'Serialize: O:7:"Product":2:{s:2:"id";i:100;s:5:"price";d:45;}'

ดูเพิ่มเติม

  • ฟังก์ชัน serialize,
    ซึ่งแปลงค่าเป็นสตริงที่เก็บได้
ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ