<?php
class A implements \Serializable {
public function serialize()
{
$s = new \stdClass();
$s->id = 1;
var_dump($s);
return serialize($s);
}
public function unserialize($s)
{
}
}
class B extends A {
public function serialize()
{
$p = parent::serialize();
$s = unserialize($p);
$s->foo = 'bar';
$s2 = serialize($s);
var_dump($p, $s, $s2); // $s2 = 'r:2'
//var_dump(unserialize($s2)); // will throw error as can't unserialize
die;
//return serialize($s);
}
}
$b = new B;
serialize($b);
Deprecated: A 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/fuI8h on line 2
Deprecated: B 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/fuI8h on line 16
object(stdClass)#2 (1) {
["id"]=>
int(1)
}
string(32) "O:8:"stdClass":1:{s:2:"id";i:1;}"
object(stdClass)#3 (2) {
["id"]=>
int(1)
["foo"]=>
string(3) "bar"
}
string(52) "O:8:"stdClass":2:{s:2:"id";i:1;s:3:"foo";s:3:"bar";}"
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/fuI8h on line 2
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/fuI8h on line 6
object(stdClass)#2 (1) {
["id"]=>
int(1)
}
string(32) "O:8:"stdClass":1:{s:2:"id";i:1;}"
object(stdClass)#2 (2) {
["id"]=>
int(1)
["foo"]=>
string(3) "bar"
}
string(52) "O:8:"stdClass":2:{s:2:"id";i:1;s:3:"foo";s:3:"bar";}"
Output for 5.0.5
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/fuI8h on line 2
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/fuI8h on line 6
Fatal error: Interface 'Serializable' not found in /in/fuI8h on line 2
Process exited with code 255.
Output for 5.0.0 - 5.0.4
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/fuI8h on line 2
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/fuI8h on line 6
Fatal error: Class 'Serializable' not found in /in/fuI8h on line 2
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING, expecting '{' in /in/fuI8h on line 2
Process exited with code 255.