codeigniter-PHP参数不定,如何动态调用方法?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了codeigniter-PHP参数不定,如何动态调用方法?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1792字,纯文字阅读大概需要3分钟。
内容图文
![codeigniter-PHP参数不定,如何动态调用方法?](/upload/InfoBanner/zyjiaocheng/241/97546e9974da415eb5931e24727c4b5d.jpg)
我现在有三个方法
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.com/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);
被忽略的回答可以实现阿 真是醉了
内容总结
以上是互联网集市为您收集整理的codeigniter-PHP参数不定,如何动态调用方法?全部内容,希望文章能够帮你解决codeigniter-PHP参数不定,如何动态调用方法?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。