Introduction
The Serializable interface is present in PHP library to build a class that provides custimised serialzing. PHP's serialize() function is able to serialize most of the values to a storable representation. However, objects of user defined classes can not be serialized. This interface makes it possible.
Syntax
Serializable { /* Methods */ abstract public serialize ( void ) : string abstract public unserialize ( string $serialized ) : void }
Methods
Serializable::serialize — String representation of object
Serializable::unserialize — Constructs the object from serialized string representation
The built-in serialze() function Generates a storable representation of a value
serialize ( mixed $value ) : string
unserialize() function Creates a PHP value from a stored representation
unserialize ( string $str [, array $options ] ) : mixed
Serializable Example
In following example, a string variable is used private proprty of myclass. When built-in serialize() function uses object of this class as argument, serialize() method is automatically called. Similarly, unserialize() function reconstructs the object with string prvate property.
Example
<?php class myclass implements Serializable { private $arr; public function __construct() { $this->arr = "TutorialsPoint India (p) Ltd"; } public function serialize() { echo "Serializing object..\n"; return serialize($this->arr); } public function unserialize($data) { echo "Unserializing object..\n"; $this->arr = unserialize($data); } public function getdata() { return $this->arr; } } $obj = new myclass; $serobj = serialize($obj); var_dump ($serobj); $obj1 = unserialize($serobj); var_dump($obj1->getdata()); ?>
Output
Above program shows following output
Serializing object.. string(55) "C:7:"myclass":36:{s:28:"TutorialsPoint India (p) Ltd";}" Unserializing object.. string(28) "TutorialsPoint India (p) Ltd"