__invoke de PHP est une fonctionnalité très utile qui peut conserver la responsabilité unique d'une classe
Exemple
class Invokable { public function __invoke() { echo '已被 invoke'; } }
Utilisation
$invokable = new Invokable(); $invokable();
Une classe invocable peut être injectée dans d'autres classes dans
class Foo { protected $invokable; public function __construct(Invokable $invokable) { $this->invokable = $invokable; } public function callInvokable() { $this->invokable(); } }
utilisez $this->invokable(); pour activer la classe Invokable La classe recherchera une méthode nommée invokable, donc l'opération suivante signalera une erreur
$foo = new Foo($invokable); $foo->callInvokable(); // Call to undefined method Foo::invokable()
Ce qui suit est correct. Méthode d'appel
public function callInvokable() { // 优先推荐 call_user_func($this->invokable); // 可选 $this->invokable->__invoke(); // 可选 ($this->invokable)(); }
Pour plus de connaissances sur PHP, veuillez visiter le Tutoriel PHP !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!