PHP のオーバーロードされたメソッド __call()
__call() メソッドは、不正なメソッド呼び出しを監視するために使用されます。
__call() (メソッドのオーバーロード)
呼び出されたメソッドが存在しない場合のエラーを回避するには、__call() メソッドを使用できます。呼び出されたメソッドが存在しない場合、このメソッドは自動的に呼び出され、プログラムは引き続き実行されます。
構文:
function __call(string $function_name, array $arguments)
{
…
}
このメソッドには 2 つのパラメータがあり、最初のパラメータ $function_name は既存のメソッドの名前を自動的に受け取ります。 、2 番目の $args は、存在しないメソッドの複数のパラメーターを配列の形式で受け取ります。
クラスに追加します:
function __call($function_name, $args)
{
echo "呼び出した関数: $function_name(parameters:
";
var_dump($args ) ;
echo ")Does notexist!";
}
存在しないメソッド(test()メソッドなど)を呼び出す場合:
$p1=new Person();
$p1- > test(2,"test");
出力結果は次のとおりです:
呼び出した関数: test(parameter:
array(2) {
[0]=>int(2)
[ 1]=>string(4) "テスト"
}
) は存在しません!