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 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
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.
Output for 7.4.2 - 7.4.33
Warning: assert(): assert(is_array($data->second->items[0]->children)) failed in /in/2m3Jb on line 76 OK
Output for 7.4.0 - 7.4.1
OK
Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.34, 7.3.0 - 7.3.33
Parse error: syntax error, unexpected '?', expecting function (T_FUNCTION) or const (T_CONST) in /in/2m3Jb on line 5
Process exited with code 255.
Output for 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.40, 7.0.0 - 7.0.33
Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE) in /in/2m3Jb on line 5
Process exited with code 255.
Output for 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29
Parse error: syntax error, unexpected '?', expecting T_VARIABLE in /in/2m3Jb on line 5
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Parse error: parse error, unexpected '?', expecting T_VARIABLE in /in/2m3Jb on line 5
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/2m3Jb on line 5
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 T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/2m3Jb on line 5
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/2m3Jb on line 5
Process exited with code 255.

preferences:
78.09 ms | 418 KiB | 5 Q