Zoeken…


Syntaxis

  • serialize ($ object)
  • unserialize ($ object)

Opmerkingen

Alle PHP-typen behalve bronnen zijn serienummerbaar. Bronnen zijn een uniek variabel type dat verwijst naar "externe" bronnen, zoals databaseverbindingen.

Serialiseren / Unserialiseren

serialize() retourneert een tekenreeks die een byte-streamrepresentatie bevat van elke waarde die kan worden opgeslagen in PHP. unserialize() kan deze tekenreeks gebruiken om de oorspronkelijke variabele waarden opnieuw te maken.

Een object serialiseren

serialize($object);

Een object niet meer serieel maken

unserialize($object)

Voorbeeld

$array = array();
$array["a"] = "Foo";
$array["b"] = "Bar";
$array["c"] = "Baz";
$array["d"] = "Wom";

$serializedArray = serialize($array);
echo $serializedArray; //output: a:4:{s:1:"a";s:3:"Foo";s:1:"b";s:3:"Bar";s:1:"c";s:3:"Baz";s:1:"d";s:3:"Wom";}

De interface met serienummer

Invoering

Klassen die deze interface implementeren, ondersteunen niet langer __sleep() en __wakeup() . De methode serialize wordt aangeroepen wanneer een exemplaar moet worden geserialiseerd. Dit roept __destruct() niet op of heeft geen andere bijwerking tenzij deze in de methode is geprogrammeerd. Wanneer de gegevens niet worden unserialized de klasse bekend en wordt de juiste methode unserialize() als constructor aangeroepen in plaats van __construct() aan te roepen. Als u de standaardconstructor moet uitvoeren, kunt u dit in de methode doen.

Basis gebruik

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); // Output: string(38) "C:3:"obj":23:{s:15:"My private data";}"

$newobj = unserialize($ser);

var_dump($newobj->getData()); // Output: string(15) "My private data"


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow