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

藏色散人
藏色散人nach vorne
2019-12-19 14:21:083015Durchsuche

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

Beispiel

class Invokable
{
    public function __invoke()
    {
        echo '已被 invoke';
    }
}

Verwendung

$invokable = new Invokable();
$invokable();

Aufrufbare Klasse kann in andere Klassen in

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

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()

Folgendes ist korrekt Aufrufmethode

public function callInvokable()
{
    // 优先推荐
    call_user_func($this->invokable);
    // 可选
    $this->invokable->__invoke();
    // 可选
    ($this->invokable)();
}

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen