调用动态命名函数数组键并将其值插入参数

时间:2016-12-17 06:00:51

标签: php

我想从我的$ 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);

}

2 个答案:

答案 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);

}