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 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
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.
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 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.
Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.31, 7.4.0 - 7.4.33
1, 2, 3, 4, 5 5, 4, 3, 2, 1 Notice: Undefined variable: newl in /in/43uni on line 43 Warning: Creating default object from empty value in /in/43uni on line 41 Notice: Undefined variable: newl in /in/43uni on line 43 Warning: Creating default object from empty value in /in/43uni on line 41 Notice: Undefined variable: newl in /in/43uni on line 43 Warning: Creating default object from empty value in /in/43uni on line 41 Notice: Undefined variable: newl in /in/43uni on line 43
Output for 7.3.32 - 7.3.33
1, 2, 3, 4, 5 5, 4, 3, 2, 1 Warning: Creating default object from empty value in /in/43uni on line 41 Warning: Creating default object from empty value in /in/43uni on line 41 Warning: Creating default object from empty value in /in/43uni on line 41

preferences:
243.97 ms | 402 KiB | 291 Q