3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Node { public $val; public $next; public function __construct($val, $next) { $this->val = $val; $this->next = $next; } public function __toString() { $a = []; $c = $this; while ($c != null) { $a[] = $c->val; $c = $c->next; } return implode(", ", $a)."\n"; } public static function reverse($list) { $newl = null; $curr = $list; while ($curr != null) { $next = $curr->next; $curr->next = $newl; $newl = $curr; $curr = $next; } return $newl; } public static function reverseRecursively($list) { if ($list == null || $list->next == null) { return $list; } $next = $list->next; $list->next = null; $next = self::reverseRecursively($next); $next->next = $list; return $newl; } } $list = new Node(1, new Node(2, new Node(3, new Node(4, new Node(5, null))))); echo $list; $list = Node::reverse($list); echo $list; $list = Node::reverseRecursively($list); echo $list; exit();
Output for git.master, git.master_jit, rfc.property-hooks
1, 2, 3, 4, 5 5, 4, 3, 2, 1 Warning: Undefined variable $newl in /in/43uni on line 43 Fatal error: Uncaught Error: Attempt to assign property "next" on null in /in/43uni:41 Stack trace: #0 /in/43uni(40): Node::reverseRecursively(Object(Node)) #1 /in/43uni(40): Node::reverseRecursively(Object(Node)) #2 /in/43uni(53): Node::reverseRecursively(Object(Node)) #3 {main} thrown in /in/43uni on line 41
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:
45.42 ms | 401 KiB | 8 Q