实例
<?php
function func($a,$b)
{
echo "a:" . $a ."<br>";
echo "b:" . $b;
}
//直接方法名调用
call_user_func_array('func', [1,2]);
echo "<br>";
class MyClass{
public function func($arg){
echo 'MyClass func ' . $arg;
}
public static function staticFunc($arg){
echo "Mysql static func " . $arg;
}
}
//调用类里的普通方法和静态方法
$myClass = new MyClass();
call_user_func_array([$myClass,"func"],['huyongjian']);
echo "<br>";
call_user_func_array(["MyClass", "staticFunc"], ['张三']);
echo "<br>";
class MyClass2{
function getName($username,$callback){
return call_user_func_array($callback,[$username]);
}
function upper($username){
return strtoupper($username);
}
}
//类里方法里调用
$myClass2 = new MyClass2();
echo $myClass2->getName("huyongjian",[$myClass2,"upper"]);
结果显示
a:1
b:2
MyClass func huyongjian
Mysql static func 张三
HUYONGJIAN