Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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