【发布时间】:2013-03-30 23:07:00
【问题描述】:
显然,这确实是很糟糕的代码,但我想不出如何改进它。 'test' 函数根本无法更改,但其余的都可以。
我想将一组值传递给一个执行测试函数的函数。关键是我需要在测试函数中使用所有预定义的函数变量值,而不需要重新声明它们。
我不能直接操作测试功能,它必须通过另一个功能。
这只是一个更大问题的演示,但解决这个问题肯定会解决我的问题。如果做不到,我需要彻底重新考虑很多事情。
function test($p1, $p2="hello", $p3=5, $p4=true) {
}
--
function action($vars = array()) {
$count = count($vars);
switch($count) {
case 1:
$result = test($vars[0]);
break;
case 2:
$result = test($vars[0], $vars[1]);
break;
case 3:
$result = test($vars[0], $vars[1], $vars[2]);
break;
case 4:
$result = test($vars[0], $vars[1], $vars[2], $vars[3]);
break;
}
return $result;
}
--
action(array(1, "test"));
【问题讨论】:
-
它甚至不是有效的 PHP。
switch中没有case关键字 -
您正在寻找
call_user_func_array()。
标签: php