Serializable arayüzü

(PHP 5 >= 5.1.0, PHP 7)

Giriş

Dizgeleştirmeyi özelleştirme arayüzü.

Bu arayüzü gerçekleyen sınıflar __sleep() ve __wakeup() işlevlerini desteklemezler. Bir örneğin dizgeleştirilmesi gerektiğinde serialize yöntemi çağrılır. Bunun __destruct() çağırmak veya yöntem içinde tanımlanmamış bir işlemi yapmak gibi bir yan etkisi yoktur. Dizgeleştirilmiş nesne yeniden oluşturulmak istendiğinde sınıf bilinmekte olur ve kurucu olarak __construct() yerine ilgili unserialize() yöntemi çağrılır. Eğer standart kurucuyu çalıştırmak isterseniz bunu yöntemin içinde yapmanız gerekir.

Arayüz Sözdizimi

Serializable {
/* Yöntemler */
abstract public serialize ( void ) : string
abstract public unserialize ( string $dizgeleşmiş ) : void
}

Örnek 1 - Temel kullanım

<?php
class obj implements Serializable {
    private 
$data;
    public function 
__construct() {
        
$this->data "My private data";
    }
    public function 
serialize() {
        return 
serialize($this->data);
    }
    public function 
unserialize($data) {
        
$this->data unserialize($data);
    }
    public function 
getData() {
        return 
$this->data;
    }
}

$obj = new obj;
$ser serialize($obj);

var_dump($ser);

$newobj unserialize($ser);

var_dump($newobj->getData());
?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

string(38) "C:3:"obj":23:{s:15:"My private data";}"
string(15) "My private data"

İçindekiler