__invokeメソッド
マジックメソッド __invoke は、クラスのインスタンスを関数として呼び出せるようにします。
オブジェクトが関数として呼び出されると、PHPは自動的にこのメソッドを呼び出します。
このメソッドは通常の関数と同様にパラメータを受け取り、値を返すことができます。
構文
class MyClass {
public function __invoke(...$args) {
// 実装
}
}
例
__invokeメソッドを持つクラスを作成し、オブジェクトを関数として呼び出します:
<?php
class Greeter {
public function __invoke($name) {
return "Hello, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
コード実行結果:
'Hello, John!'
例
複数のパラメータを持つ__invokeの使用:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
コード実行結果:
8
例
is_callableを使用してオブジェクトが呼び出し可能かどうかを確認します:
<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
コード実行結果:
false
true
関連項目
-
クラスのコンストラクタである
メソッド
__construct -
オブジェクトを文字列として表現できるようにする
メソッド
__toString