354 of 410 menu

__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
日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否