概要
- 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()
: インスタンス化されたオブジェクトを関数のように呼び出す際に実行される関数
-