3v4l.org

run code in 200+ PHP versions simultaneously
<?php class Role implements \Serializable { protected $id = 0; protected $b = null; public function __construct($id) { $this->id = $id; } public function serialize() { return serialize([$this->id, $this->b]); } public function unserialize($serialized) { list($this->id, $this->b) = unserialize($serialized); } } class AbstractToken implements \Serializable { public $role1; public $role2; public function __construct($role) { $this->role1 = $role; $this->role2 = $role; } public function serialize() { return serialize([$this->role1, $this->role2]); } public function unserialize($serialized) { list($this->role1, $this->role2) = unserialize($serialized); } } class Token extends AbstractToken { public $id; public function __construct($id, $role) { $this->id = $id; parent::__construct($role); } public function serialize() { return serialize([$this->id, parent::serialize()]); } public function unserialize($serialized) { list($this->id, $parentStr) = unserialize($serialized); parent::unserialize($parentStr); } } $token = new Token(1, new Role(1)); $s = serialize($token); $broken = unserialize($s); var_dump($token->role2); var_dump($broken->role2); exit;
based on QFDDc
Output for 7.3.0 - 7.4.1
Notice: unserialize(): Error at offset 53 of 54 bytes in /in/gMDup on line 40 object(Role)#2 (2) { ["id":protected]=> int(1) ["b":protected]=> NULL } NULL
Output for 5.4.0 - 5.6.40, 7.0.6 - 7.2.26
object(Role)#2 (2) { ["id":protected]=> int(1) ["b":protected]=> NULL } int(1)
Output for 7.0.0 - 7.0.5
object(Role)#2 (2) { ["id":protected]=> int(1) ["b":protected]=> NULL } object(Role)#4 (2) { ["id":protected]=> int(1) ["b":protected]=> NULL }
Output for 5.3.0 - 5.3.29
Parse error: syntax error, unexpected '[', expecting ')' in /in/gMDup on line 14
Process exited with code 255.
Output for 5.1.0 - 5.2.17
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/gMDup on line 2 Parse error: syntax error, unexpected '[', expecting ')' in /in/gMDup on line 14
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/gMDup on line 2 Parse error: parse error, unexpected '[', expecting ')' in /in/gMDup on line 14
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING, expecting '{' in /in/gMDup on line 2
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.4.1
Parse error: parse error, unexpected T_STRING, expecting '{' in /in/gMDup on line 2
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `'{'' in /in/gMDup on line 2
Process exited with code 255.