- spl_autoload_register: documentation ( source)
- var_dump: documentation ( source)
- unserialize: documentation ( source)
- serialize: documentation ( source)
- get_object_vars: documentation ( source)
<?php
class SerializableClass implements Serializable {
public $sharedProp;
public function __construct($prop)
{
$this->sharedProp = $prop;
}
public function __set($key, $value)
{
$this->$key = $value;
}
public function serialize()
{
return serialize(get_object_vars($this));
}
public function unserialize($data)
{
$ar = unserialize($data);
if ($ar === false) {
return;
}
foreach ($ar as $k => $v) {
$this->__set($k, $v);
}
}
}
spl_autoload_register(function($class) {
$testPropertyObj = new stdClass();
$testPropertyObj->name = 'test';
$array = [
'obj1' => new SerializableClass($testPropertyObj),
'obj2' => new SerializableClass($testPropertyObj),
];
var_dump(unserialize(serialize($array)));
class X {}
});
unserialize('O:1:"X":0:{}');