Astuce PHP : Appelez la classe de type Invoke dans l'instance

藏色散人
Libérer: 2023-04-08 06:26:01
avant
2969 Les gens l'ont consulté

__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';
    }
}
Copier après la connexion

Utilisation

$invokable = new Invokable();
$invokable();
Copier après la connexion

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();
    }
}
Copier après la connexion

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()
Copier après la connexion

Ce qui suit est correct. Méthode d'appel

public function callInvokable()
{
    // 优先推荐
    call_user_func($this->invokable);
    // 可选
    $this->invokable->__invoke();
    // 可选
    ($this->invokable)();
}
Copier après la connexion

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!

Étiquettes associées:
php
source:learnku.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal