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 git.master, git.master_jit
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 rfc.property-hooks
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

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
61.34 ms | 402 KiB | 8 Q