3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php class Foo { private $callable; public function __construct() { $this->callable = function () { echo "hello world!"; }; } public function yesItDoes() { ($this->callable)(); } } class Bar { private $name; public function __construct($id) { $this->name = function ($id) { echo "Hello ".$id; }; } public function getName() { ($this->name)(); } } (new Bar('eric'))->getName(); (new Foo)->yesItDoes();
based on 9vRuH
Output for 7.1.0 - 7.2.0
Fatal error: Uncaught ArgumentCountError: Too few arguments to function Bar::{closure}(), 0 passed in /in/Tg48r on line 25 and exactly 1 expected in /in/Tg48r:20 Stack trace: #0 /in/Tg48r(25): Bar->{closure}() #1 /in/Tg48r(29): Bar->getName() #2 {main} thrown in /in/Tg48r on line 20
Process exited with code 255.
Output for 7.0.0 - 7.0.20
Warning: Missing argument 1 for Bar::{closure}(), called in /in/Tg48r on line 25 and defined in /in/Tg48r on line 20 Notice: Undefined variable: id in /in/Tg48r on line 20 Hello hello world!
Output for 5.3.21 - 5.6.28
Parse error: syntax error, unexpected '(' in /in/Tg48r on line 12
Process exited with code 255.