1

私が機能を持っているとしましょう:

<?php
function myFunction($param1, $param2, /*0 or more extra args*/) {
  // do something with $param1 & $param2
  $args = func_get_args();
  $other_args = array_slice($args, 2); // get the dynamic args
  // do something with $other_args
}
?>

これにより、以下を呼び出すことができます。

<?php
myFunction($param1, $param2); // or
myFunction($param1, $param2, $param3); // or
myFunction($param1, $param2, $param3, $param4);
?>

しかし、argsの配列を取得して、それらを関数に渡すことが可能かどうかを知りたいです。例:

<?php
$extra_args = array($param3, $param4); // this could also be
$extra_args = array($param3, $param4, $param5); // or any length array
?>

それらを別々のパラメータとして関数に渡したいです。

<?php
myFunction($param1, $param2 /* other args split up */);
?>

前もって感謝します!

4

2 に答える 2

4

うん- call_user_func_array()'。

http://www.php.net/manual/en/function.call-user-func-array.php

2つの引数を取ります-関数名(文字列として-または、PHP> = 5.3の場合、無名関数、不明)とパラメーターの配列。

またはメソッドの場合、forward_static_call_array()

http://www.php.net/manual/en/function.forward-static-call-array.php

JSに対するPHPの答えfunction.prototype.apply():)

于 2012-07-13T18:21:13.737 に答える
1
call_user_func_array('myFunction', 
    array_merge(
       array($param1,$param2),
       $extra_args));
于 2012-07-13T18:21:20.210 に答える