您好,欢迎访问一九零五行业门户网

codeigniter - PHP 参数不定,如何动态调用方法?

如:
我现在有三个方法
foo($a,$b=null)boo($a=array(),$b=)roo($a)

现在我只需要传递方法名称和参数列表就能直接调用方法。
希望是可以这样(伪代码):
function run_function($fun_name,$paras){ {$fun_name}(....//这里应该怎么写呢?);}

自己找到正确答案了,谢谢下面两个回复的,但真不是我需要的答案。现贴出解决方案:
$handler = array( 'test', 'test3');$params = array( array(1,2,3,4), 1);if($params == null){ call_user_func($handler);}if (is_callable($handler) ){ call_user_func_array( $handler , $params );}class test{ function test1($arr,$arr1) { var_dump(array_merge($arr,$arr1)); } function test2() { echo 123; } function test3($arr,$a) { var_dump($arr); var_dump($a); }}

回复内容: 如:
我现在有三个方法
foo($a,$b=null)boo($a=array(),$b=)roo($a)

现在我只需要传递方法名称和参数列表就能直接调用方法。
希望是可以这样(伪代码):
function run_function($fun_name,$paras){ {$fun_name}(....//这里应该怎么写呢?);}

自己找到正确答案了,谢谢下面两个回复的,但真不是我需要的答案。现贴出解决方案:
$handler = array( 'test', 'test3');$params = array( array(1,2,3,4), 1);if($params == null){ call_user_func($handler);}if (is_callable($handler) ){ call_user_func_array( $handler , $params );}class test{ function test1($arr,$arr1) { var_dump(array_merge($arr,$arr1)); } function test2() { echo 123; } function test3($arr,$a) { var_dump($arr); var_dump($a); }}

http://www.php.net/manual/zh/function.func-get-args.php
function run_function($fun_name){ if(function_exists($fun_name)) { $num = func_num_args(); $args = func_get_args(); array_shift($args); return $num==1 ? call_user_func($fun_name) : call_user_func_array($fun_name,$args); } trigger_error('call to undefined function ' . $fun_name, e_user_error);}//使用run_function('foo', $a, $b);run_function('boo', $a, $b);run_function('roo', $a);
被忽略的回答可以实现阿 真是醉了
其它类似信息

推荐信息