ホームページ  >  記事  >  バックエンド開発  >  PHP で __call() と __callStatic() を使用する方法

PHP で __call() と __callStatic() を使用する方法

小云云
小云云オリジナル
2018-03-26 10:54:282085ブラウズ

この記事では主に PHP で __call() と __callStatic() を使用する方法を説明します。お役に立てれば幸いです。これら 2 つのメソッドの使用方法については、あまり説明しません。コード例と結果を通して、この 2 つの機能をより明確に理解できます。

1.__call() メソッド。クラス内で宣言されていないメソッドを呼び出す場合は、メソッドを宣言する代わりに __call() メソッドを呼び出すことができます。メソッド名と配列をパラメータとして受け入れます。

コード例:

<?php  
class test{  
//魔术方法__call  
/* 
$method 获得方法名 
$arg 获得方法的参数集合 
*/  
public function __call($method,$arg){  
    echo &#39;你想调用我不存在的方法&#39;,$method,&#39;方法<br/>&#39;;  
    echo &#39;还传了一个参数<br/>&#39;;  
    echo print_r($arg),&#39;<br/>&#39;;  
  }   
$list=new test();  
$list->say(1,2,3);  
  
?>

実行結果:

あなたはメソッドという存在しないメソッドを呼び出したいと考えています
パラメータも渡されました
Array ( [0] => 1 [1] => 2 [2] => 3 )

2.__callStatic() メソッド。このメソッドはPHP5.3から登場しており、クラスに存在しないメソッドを呼び出す静的メソッドを作成する際に使用されます。 __call() メソッドと同じで、メソッド名と配列をパラメータとして受け取ります。

コード例:

<?php  
class test{  
//魔术方法__callStatic 
/* 
$method 获得方法名 
$arg 获得方法的参数集合 
*/  
//魔术方法__callStatic  
public static function __callStatic($method,$arg){  
  
    echo &#39;你想调用我不存在的&#39;,$method,&#39;静态方法<br/>&#39;;  
    echo &#39;还传了一个参数<br/>&#39;;  
    echo print_r($arg),&#39;<br/>&#39;;  
  }  
  
}  
test::cry(&#39;痛哭&#39;,&#39;鬼哭&#39;,&#39;号哭&#39;);  

?>

実行結果:
存在しないcry静的メソッドを呼び出したい
パラメータも渡されました
Array ( [0] => Cry[1] => Ghost Cry [2] => Howl)

関連する推奨事項:

PHP サンプル分析で __call() メソッドを使用およびオーバーロードする方法

PHP マジック関数 __call() 使用例分析_PHP チュートリアル

phpのマジックメソッド__get()、__set()、__call()、__callStatic()と静的使用法の詳細な説明

以上がPHP で __call() と __callStatic() を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。