3v4l.org

run code in 300+ 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;
Output for 8.3.0 - 8.3.6
Deprecated: Role 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/gMDup on line 2 Deprecated: AbstractToken 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/gMDup on line 23 Deprecated: Token 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/gMDup on line 44 Warning: 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 8.1.0 - 8.1.28, 8.2.0 - 8.2.18
Deprecated: Role 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/gMDup on line 2 Deprecated: AbstractToken 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/gMDup on line 23 Deprecated: Token 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/gMDup on line 44 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 7.3.0 - 7.3.31, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30
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 7.3.32 - 7.3.33
object(Role)#2 (2) { ["id":protected]=> int(1) ["b":protected]=> NULL } NULL
Output for 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.40, 7.0.6 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33
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.1.6, 5.2.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.3.11, 4.4.0 - 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.

preferences:
289.86 ms | 401 KiB | 459 Q