Using __sleep()
Object serialization is another important aspect of OOP. PHP provides a serialize()
function that allows us to serialize a value passed to it. The result is a string containing a byte-stream representation of any value that can be stored in PHP. Serializing the scalar data types and simple objects is pretty straightforward, as per the following example:
<?php $age = 34; $name = 'John'; $obj = new stdClass(); $obj->age = 34; $obj->name = 'John'; var_dump(serialize($age)); var_dump(serialize($name)); var_dump(serialize($obj));
The resulting output is shown as follows:
string(5) "i:34;" string(11) "s:4:"John";" string(56) "O:8:"stdClass":2:{s:3:"age";i:34;s:4:"name";s:4:"John";}"
Even a simple custom class can be easily :
<?php class User { public $name = 'John'; private $age = 34; protected $salary = 4200.00; } $user = new User(); var_dump(serialize($user));
The preceding code results in the following output:
string(81) "O:4:"User":3:{s:4:"name";s:4:"John"...