ホームページ  >  記事  >  バックエンド開発  >  PHP ヒント: インスタンスで Invoke 型クラスを呼び出す

PHP ヒント: インスタンスで Invoke 型クラスを呼び出す

藏色散人
藏色散人転載
2019-12-19 14:21:082971ブラウズ

PHP の __invoke は、クラスの単一の責任を維持できる非常に便利な機能です

Example

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

Using

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

呼び出し可能なクラスを他のクラスに注入できます

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

$this->invokable(); を使用して Invokable クラスをアクティブにします。クラスは invokable という名前のメソッドを探すため、次の操作ではエラーが報告されます

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

以下は正しい呼び出しメソッド

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

PHP 関連の知識については、PHP チュートリアル をご覧ください。

以上がPHP ヒント: インスタンスで Invoke 型クラスを呼び出すの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。