我想从我的$ key数组值调用asso1(),asso2(),asso3()函数,并且还要为每个$key
输入参数,现在设置为1,2,3。所以在当前状态下,我得到输出111
,但应该是123
。我怎样才能实现这一目标?
function asso1($a) {
// echo "output form asso1<br>";
return $a;
}
function asso2($b) {
// echo "output form asso2<br>";
return $b;
}
function asso3($c) {
// echo "output form asso3";
return $c;
}
$asso = array("asso1"=>"1", "asso2"=>"2", "asso3"=>"3");
foreach ($asso as $key => $_asso) {
$ar[] = $_asso;
$fv = call_user_func_array($key,$ar);
print_r($fv);
}
答案 0 :(得分:1)
如果你这样做,我想你会有更好的运气:
foreach($asso as $key => $_asso) {
$fv = call_user_func_array($key,array($_asso));
print_r($fv);
}
当您进行阵列推送时,您只是构建一个数组,但只返回第一个参数1
。
答案 1 :(得分:0)
请在下面试试此代码。它应该按你的意愿工作。
$asso = array("asso1"=>"1", "asso2"=>"2", "asso3"=>"3");
foreach ($asso as $key => $_asso) {
// $ar[] = $_asso;
// $fv = call_user_func_array($key,$ar);
$fv = call_user_func_array($key,array($_asso));
print_r($fv);
}