Heim > Backend-Entwicklung > PHP-Tutorial > PHP-Tipp: Rufen Sie die Typklasse „Invoke' in der Instanz auf

PHP-Tipp: Rufen Sie die Typklasse „Invoke' in der Instanz auf

藏色散人
Freigeben: 2023-04-08 06:26:01
nach vorne
2998 Leute haben es durchsucht

PHPs __invoke ist eine sehr nützliche Funktion, die die Einzelverantwortung einer Klasse behalten kann

Beispiel

class Invokable
{
    public function __invoke()
    {
        echo '已被 invoke';
    }
}
Nach dem Login kopieren

Verwendung

$invokable = new Invokable();
$invokable();
Nach dem Login kopieren

Aufrufbare Klasse kann in andere Klassen in <🎜 eingefügt werden >

class Foo
{
    protected $invokable;
    public function __construct(Invokable $invokable)
    {
       $this->invokable = $invokable;
    }
    public function callInvokable()
    {
        $this->invokable();
    }
}
Nach dem Login kopieren

verwenden Sie $this->invokable(); um die Invokable-Klasse zu aktivieren. Die Klasse sucht nach einer Methode namens invokable, sodass der folgende Vorgang einen Fehler meldet:

$foo = new Foo($invokable);
$foo->callInvokable();
// Call to undefined method Foo::invokable()
Nach dem Login kopieren

Folgendes ist korrekt Aufrufmethode

public function callInvokable()
{
    // 优先推荐
    call_user_func($this->invokable);
    // 可选
    $this->invokable->__invoke();
    // 可选
    ($this->invokable)();
}
Nach dem Login kopieren
Weitere PHP-bezogene Kenntnisse finden Sie im

PHP-Tutorial!

Das obige ist der detaillierte Inhalt vonPHP-Tipp: Rufen Sie die Typklasse „Invoke' in der Instanz auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:learnku.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage