在php中,可以用一个变量来保存函数名,然后通过这个变量来调用这个函数, 最近在做一个项目,用到了这点,总结了下,目前来说主要发现了以下三种方式:
1.直接调用:
$a = "var_dump";
$a("laruence");
2.使用call_user_func,但这个只能调用用户自定义的函数.
$a = "function_defined_by_user";
if(func_exists($a)){
call_user_func($a, $paramters);
}
3.也就是借用PHP5新引入的一套Reflection API中的reflectionFunction:
$func_name = "function_defined_by_user";
try{
$func = new reflectionFunction($func_name);
}catch(ReflectionFuncionException $e){
print $e->getMessage();
exit;
}
$func->invoke($parameters);
这套新API非常有趣,有趣的我想好好研究研究,参考手册中关于这套API的介绍:http://au2.php.net/oop5.reflection