25

初心者の質問で申し訳ありませんが、2 つのパラメーターを受け取る関数があります。1 つは配列、もう 1 つは変数ですfunction createList($array, $var) {}。$var という 1 つのパラメーターのみを指定して createList を呼び出す別の関数があります。これdoSomething($var);には、配列のローカル コピーは含まれていません。PHPで2つを期待する関数に1つのパラメーターを渡すにはどうすればよいですか?

解決策を試みる:

function createList (array $args = array()) {
    //how do i define the array without iterating through it?
 $args += $array; 
 $args += $var;


}
4

3 に答える 3

54

PHP 5.6+ を手に入れることができれば、可変引数の新しい構文である ellipsis キーワードがあります。
すべての引数を配列に変換するだけです。

function sum(...$numbers) {
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}
echo sum(1, 2, 3, 4);

ドキュメント: ... in PHP 5.6+

于 2014-11-21T14:35:52.940 に答える
4

関数宣言でパラメーターを指定しない場合は、PHP のfunc_get_argまたはfunc_get_argsを使用して引数を取得します。

function createList() {
   $arg1 = func_get_arg(0);
   //Do some type checking to see which argument it is.
   //check if there is another argument with func_num_args.
   //Do something with the second arg.
}
于 2013-05-29T20:59:48.310 に答える