php の呼び出しメソッドは、オブジェクト内でアクセスできないメソッドが呼び出されたときに呼び出される「__call()」マジック メソッドを指します。呼び出しメソッドの形式は「function __call(string $function_name,array $」です)引数){メソッド本体}"。
推奨: 「PHP ビデオ チュートリアル 」
オブジェクト転送でアクセスできないメソッドを呼び出す場合の __call() 。
このメソッドには 2 つのパラメータがあります。最初のパラメータ $function_name は存在しないメソッド名を自動的に受け取り、2 番目の $arguments は存在しないメソッドの複数のパラメータを配列形式で受け取ります。
1. __call() メソッドの形式:
function __call(string $function_name, array $arguments){ // 方法体}
2. __call() メソッドの機能:
メソッド呼び出し時のエラーを避けるため存在しない場合、__call() メソッドを使用することで、誤ってプログラムが終了することを回避できます。
呼び出されたメソッドが存在しない場合、このメソッドは自動的に呼び出され、プログラムは実行を継続します。
次のコードを参照してください:
<?phpclass Person{ function say() { echo "Hello, world!<br>"; } /** * 声明此方法用来处理调用对象中不存在的方法 */ function __call($funName, $arguments) { echo "你所调用的函数:" . $funName . "(参数:" ; // 输出调用不存在的方法名 print_r($arguments); // 输出调用不存在的方法时的参数列表 echo ")不存在!<br>\n"; // 结束换行 } } $Person = new Person(); $Person->run("teacher"); // 调用对象中不存在的方法,则自动调用了对象中的__call()方法$Person->eat("小明", "苹果"); $Person->say();
実行結果:
你所调用的函数:run(参数:Array ( [0] => teacher ) )不存在! 你所调用的函数:eat(参数:Array ( [0] => 小明 [1] => 苹果 ) )不存在! Hello, world!
以上がPHP呼び出しメソッドの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。