353 of 410 menu

メソッド __callStatic

メソッド __callStatic は、PHP のマジックメソッドで、存在しない、またはアクセスできない静的メソッドの呼び出しを試みたときに自動的に呼び出されます。最初のパラメータで呼び出されるメソッド名を受け取り、2番目のパラメータで渡された引数の配列を受け取ります。

構文

public static function __callStatic(string $name, array $arguments);

メソッド __callStatic を持つクラスを作成し、存在しない静的メソッドを呼び出してみます:

<?php class MyClass { public static function __callStatic($name, $args) { echo "Called static method '$name' with arguments: "; print_r($args); } } MyClass::nonExistentMethod(1, 2, 3); ?>

コード実行の結果:

Called static method 'nonExistentMethod' with arguments: [1, 2, 3]

異なるタイプのオブジェクトを作成するためのシンプルなファサードを実装します:

<?php class Factory { public static function __callStatic($name, $args) { if (strpos($name, 'create') === 0) { $className = substr($name, 6); return new $className(...$args); } throw new Exception("Method $name not found"); } } class User {} $user = Factory::createUser(); var_dump($user instanceof User); ?>

コード実行の結果:

true

関連項目

  • メソッド __call,
    オブジェクトの存在しないメソッドの呼び出しをインターセプトする
  • メソッド __get,
    存在しないプロパティへのアクセスをインターセプトする
日本語
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
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否