3v4l.org

run code in 300+ PHP versions simultaneously
<?php class foo { protected $bar = 'A bar'; public function getBarDumper() { 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() { return new static(); }; } } $factory = foo::getFactory(); $reflectedFactory = new \reflectionFunction($factory); if ($reflectedFactory->getClosureThis() === null) echo "La fonction anonyme est statique" . PHP_EOL; $bar = $factory()->getBarDumper(); $reflectedBar = new \reflectionFunction($bar); if ($reflectedBar->getClosureThis() !== null) echo "La fonction anonyme n'est pas statique" . PHP_EOL;

preferences:
44.83 ms | 402 KiB | 5 Q