شرح صفوف ومحتوى الفقرة
على عكس json_encode() التي تفقد اسم صنف الكائن وخصائصه الخاصة، تحوّل الدالة serialize() الكائن إلى نص قابل للتخزين يحتفظ بنوع الصنف وحالة خصائصه كاملة.
- ترمّز الدالة
serialize($object)اسم الصنف وجميع الخصائص العامة والمحمية والخاصة في سلسلة نصية مهيكلة. - تعيد الدالة
unserialize($payload)بناء الكائن الحي بنفس حالته دون إعادة استدعاء__construct(). - تُستخدم هذه الآلية بكثرة لتخزين كائنات المهام الخلفية (Queued Jobs) في Redis أو قاعدة البيانات.
تحفظ serialize() كلاً من الخاصية العامة $task والخاصة $retries، وتستعيد unserialize() الكائن QueuedJob بالكامل.
PHP
<?php
class QueuedJob {
public function __construct(public string $task, private int $retries) {}
public function info(): string { return "{$this->task} (tries={$this->retries})"; }
}
$raw = serialize(new QueuedJob("SendInvoicePdf", 3));
$restored = unserialize($raw);
echo $restored->info() . "\n";