在PHP中,call_user_method()函數用於動態調用對象的方法。通常,我們直接通過對象調用方法,例如:
$obj->method();
但是在某些場景下,需要根據變量動態調用方法,這時可以使用call_user_method()實現。
call_user_method ( string $method_name , object $obj , mixed $parameter [, mixed $... ] ) : mixed
參數說明:
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動態調用該方法並傳入兩個參數,最終輸出對應的結果。
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()等現代替代方案以保證代碼兼容性和可維護性。