why should one prefer call_user_func_array over regular calling of function?

前端 未结 6 2043
轮回少年
轮回少年 2020-12-12 20:41
function foobar($arg, $arg2) {
    echo __FUNCTION__, \" got $arg and $arg2\\n\";
}
foobar(\'one\',\'two\'); // OUTPUTS : foobar got one and two 

call_user_func_arr         


        
6条回答
  •  失恋的感觉
    2020-12-12 20:59

    1. You have an array with the arguments for your function which is of indeterminate length.

      $args = someFuncWhichReturnsTheArgs();
      
      foobar( /* put these $args here, you do not know how many there are */ );
      

      The alternative would be:

      switch (count($args)) {
          case 1:
              foobar($args[0]);
              break;
          case 2:
              foobar($args[0], $args[1]);
              break;
          ...
      }
      

      Which is not a solution.

    The use case for this may be rare, but when you come across it you need it.

提交回复
热议问题