Beaucoup d’arguments farfelus
By Greg Korba
<?php
class Foo {
public function __invoke(): self {
return new self();
}
public function bar(): self {
return $this();
}
}
var_dump(new Foo()()()()->bar()()()()());
PHP 8.4 supprime l’obligation de mettre des parenthèses autour de l’opérateur new : il est désormais possible d’appeler directement une méthode sur celui-ci.
Ensuite, il est également possible d’utiliser un objet comme méthode, en créant la méthode magique __invoke(). Dans ce cas, elle retourne une nouvelle instance de la classe.
Enfin, il est possible d’appeler une fonction dont le nom est le résultat d’un appel précédent.
Le résultat final est assez impressionnant.
See Also
PHP Features
Last updated: 11 October 2026