3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Item { public ?array $children = []; public ?Item $parent = null; public function addChild(Item $item): Item { $item->setParent($this); $this->children[] = $item; return $this; } public function setParent(Item $parent): void { $this->parent = $parent; } public function __sleep() { return array_keys(get_object_vars($this)); } } class Tree { public array $items = []; public function addItem(Item $item): self { $this->items[] = $item; return $this; } public function __clone() { foreach ($this->items as $key => $item) { $clone = clone $item; $this->items[$key] = $clone; } } } class Forest { public Tree $first; public Tree $second; public function __construct(Tree $first, Tree $second) { $this->first = $first; $this->second = $second; } } $charge = new Item(); $baseProduct = new Item(); $base = new Tree(); $base->addItem($baseProduct); $baseProduct->addCHild($charge); $second = clone $base; $data = new Forest($second, $base); assert(is_array($data->second->items[0]->children)); $data = unserialize(serialize($data)); assert(is_array($data->second->items[0]->children)); echo 'OK';
Output for git.master_jit, git.master, rfc.property-hooks
Fatal error: Uncaught AssertionError: assert(is_array($data->second->items[0]->children)) in /in/2m3Jb:76 Stack trace: #0 /in/2m3Jb(76): assert(false, 'assert(is_array...') #1 {main} thrown in /in/2m3Jb on line 76
Process exited with code 255.

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:
30.99 ms | 405 KiB | 5 Q