3v4l.org

run code in 300+ PHP versions simultaneously
<?php class foo { protected $bar = 'A bar'; public function getBarDumper() { $that = $this; return function() { var_dump($this->bar); }; } public static function getFactory() { // la fonction anonyme suivante est statique // car elle est déclarée dans une méthode statique. return function() { var_dump($this); return new static(); }; } } class bar {} $factory = foo::getFactory(); $bar = new bar(); $factory = $factory->bindTo($bar, $bar);

preferences:
37.36 ms | 402 KiB | 5 Q