3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Widget implements \Serializable { public $references = array(); public function serialize() { $vars = get_object_vars($this); $serialized = serialize($vars); return $serialized; } public function unserialize($serialized) { $array = unserialize($serialized); foreach($array as $k => $v) $this->$k = $v; } } class Placeholder { public $id; public function __construct($id) { $this->id = $id; } } $placeholder1 = new Placeholder(1); $placeholder2 = new Placeholder(2); $widgets = array(new Widget, new Widget, new Widget, new Widget); $widgets[0]->references[] = $placeholder1; $widgets[1]->references[] = $placeholder2; $widgets[2]->references[] = $placeholder1; $widgets[3]->references[] = $placeholder1; var_dump(unserialize(serialize($widgets)));
Output for git.master, git.master_jit, rfc.property-hooks
Deprecated: Widget 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/NQg0W on line 2 array(4) { [0]=> object(Widget)#7 (1) { ["references"]=> array(1) { [0]=> object(Placeholder)#8 (1) { ["id"]=> int(1) } } } [1]=> object(Widget)#9 (1) { ["references"]=> array(1) { [0]=> object(Placeholder)#10 (1) { ["id"]=> int(2) } } } [2]=> object(Widget)#11 (1) { ["references"]=> array(1) { [0]=> object(Placeholder)#8 (1) { ["id"]=> int(1) } } } [3]=> object(Widget)#12 (1) { ["references"]=> array(1) { [0]=> object(Placeholder)#8 (1) { ["id"]=> int(1) } } } }

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:
44.52 ms | 403 KiB | 8 Q