7
2

PHP マジックメソッド __invoke()について

Last updated at Posted at 2022-06-19

概要

  • PHPのマジックメソッドの一つである__invoke()について簡単にまとめてみる。

マジックメソッド

  • マジックメソッドが何たるかについては公式ドキュメントに記載されている。
  • ようは「特定の動作をさせたときに実行する関数」みたいな感じっぽい。(違ったらすみません。)

__invoke()

  • このマジックメソッドは「インスタンス変数を関数のように呼び出したときに実行される関数」らしい。

  • 下記を実行するとxxxが出力される。

    <?php
    
    // クラス定義
    class Foo
    {
        public function __construct()
        {
        }
    
        public function __invoke(string $str1)
        {
            echo $str1;
        }
    }
    
    // インスタンス化してオブジェクトを$fooに格納
    $foo = new Foo();
    
    // オブジェクトを関数のように呼び出し
    $foo('xxx');
    

__construct()との違い

  • 「〇〇されたときに実行される関数」という共通点で__construct()と似ているように感じた。
  • ただ、よく考えてみると全然違うものだった。
    • __construct(): クラスをインスタンス化する際に実行される関数
    • __invoke(): インスタンス化されたオブジェクトを関数のように呼び出す際に実行される関数

参考文献

7
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2