php回调函数

php回调函数

一个参数的回调 call_user_func

class test
{
function getnum($a)
{
return $a;
}

function getfloat()
{
return '1.0';
}
}

//类回调
$a = new test();
call_user_func(array($a, 'getnum'),'22');

//函数
function testcallback($args)
{
return $args;
}

//函数回调
call_user_func('testcallback','1');

如果是多个参数用 call_user_func_array();

class Writting{
function Write($a,$b){
echo "He can write ".$a;
echo "<br>";
echo "She can write ".$b;
}
}

//类回调
call_user_func_array(array("Speaking","Speak"),array("Chinese","English"));

//函数回调
function testmanyargs($a,$b)
{
return $a+$b;
}
call_user_func_array('testmanyargs',array(1,2));

所以
一个参数类和函数的回调分别是

call_user_func(array(类对象, 方法),参数);
call_user_func(函数,参数);

多个参数类和函数的回调分别是

call_user_func_array(函数,array(参数,参数));
call_user_func_array(array(类对象,方法),array(参数,参数));