<?php
class Role
{
}
class Foo implements Serializable
{
private $var1;
public function __construct() {
$this->var1 = array(new Role());
}
public function serialize() {
return serialize(array($this->var1));
}
public function unserialize($serialized) {
list($this->var1) = unserialize($serialized);
}
}
class Bar extends Foo
{
private $var2;
public function __construct()
{
parent::__construct();
$this->var2 = new \stdClass();
}
public function serialize() {
return serialize(array($this->var2, parent::serialize()));
}
public function unserialize($serialized) {
list($this->var2, $parentStr) = unserialize($serialized);
parent::unserialize($parentStr);
}
}
$foo = new Bar;
var_dump(unserialize(serialize($foo)));
Deprecated: Foo implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /in/64GT7 on line 7
Deprecated: Bar implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /in/64GT7 on line 24
object(Bar)#4 (2) {
["var1":"Foo":private]=>
array(1) {
[0]=>
object(Role)#6 (0) {
}
}
["var2":"Bar":private]=>
object(stdClass)#5 (0) {
}
}
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/64GT7 on line 31
object(Bar)#4 (2) {
["var2:private"]=>
object(stdClass)#5 (0) {
}
["var1:private"]=>
array(1) {
[0]=>
object(Role)#6 (0) {
}
}
}
Output for 5.0.5
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/64GT7 on line 31
Fatal error: Interface 'Serializable' not found in /in/64GT7 on line 7
Process exited with code 255.
Output for 5.0.0 - 5.0.4
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/64GT7 on line 31
Fatal error: Class 'Serializable' not found in /in/64GT7 on line 7
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING, expecting '{' in /in/64GT7 on line 7
Process exited with code 255.