PHPでは、call_user_method()関数を使用して、オブジェクトのメソッドを動的に呼び出します。通常、たとえば、オブジェクトを介してメソッドを直接呼び出します。
$obj->method();
ただし、一部のシナリオでは、方法を変数に基づいて動的に呼び出す必要があり、今回はcall_user_method()を使用して実装できます。
call_user_method(string $ method_name、object $ obj、mixed $ parameter [、mixed $ ...]):mix
パラメーター説明:
class MyClass {
public function myMethod($arg1, $arg2) {
echo "arg1=$arg1, arg2=$arg2";
}
}
$obj = new MyClass();
call_user_method('myMethod', $obj, 'value1', 'value2'); // arg1=value1, arg2=value2
上記のコードでは、MyClassクラスとそのメソッドMyMethodを定義し、Call_User_Methodを介してメソッドを動的に呼び出し、2つのパラメーターを渡し、最後に対応する結果を出力します。
class MyClass {
public function myMethod($arg1, $arg2) {
echo "arg1=$arg1, arg2=$arg2";
}
}
$obj = new MyClass();
call_user_func([$obj, 'myMethod'], 'value1', 'value2'); // arg1=value1, arg2=value2
ここでは、call_user_func()を使用して、配列形式のオブジェクト名とメソッド名を渡すことです。この関数は、call_user_method()に相当し、php7以上と互換性があります。
この記事では、PHPでのcall_user_method()関数の使用と、動的呼び出し方法の基本概念を紹介します。この機能はPHP7後に廃止されたため、開発者はCall_user_func()などの最新の代替品を使用して、コードの互換性と保守性を確保することをお勧めします。