call_user_func函数类似于一种调用函数的特殊方法。使用方法如下。第一种情况:functionset_max($a,$b){if($a>$b)echo$a;elseecho$b;}call_user_func('set_max',"111","222");//结果为222,第一个参数set_max作为call_user_func的回调函数,$a=111,$b=222.第二种情况classa{functionb($c){echo$c;}}$num=200;call_user_func(array('a','b'),$num);//此时结果为200一个参数是一个数组,那么回调就是a类中的b方法,num作为参数传递给b方法。省略实例化a的过程。说到这里,又得看call_user_func_array了。实际上,call_user_func_array类似于call_user_func,用法如下:functionset_max($a,$b){if($a>$b)echo$a;否则echo$b;}call_user_func_array('set_max',array(111,222));//结果222比call_user_func更直观。而call_user_func_array使用类中的方法如下:classtest{functionset_max($a,$b){if($a>$b)echo$a;否则echo$b;}}call_user_func_array(array('test','set_max'),array(111,222));//结果也是222
