9

重複の可能性:
PHPはすべての引数を配列として取得しますか?

上手、

Javaではこれを行うことができます(擬似コード):

public hello( String..args ){
    value1 = args[0] 
    value2 = args[1] 
    ...
    valueN = arg[n];
}

その後:

hello('first', 'second', 'no', 'matter', 'the', 'size');

PHPでこのようなものはありますか?

編集

のような配列を渡すことができるようhello(array(bla, bla))になりましたが、上記のように存在する可能性がありますか?

4

1 に答える 1

33

参照してくださいfunc_get_args

function foo()
{
    $numArgs = func_num_args();

    echo 'Number of arguments:' . $numArgs . "\n";

    if ($numArgs >= 2) {
        echo 'Second argument is: ' . func_get_arg(1) . "\n";
    }

    $args = func_get_args();
    foreach ($args as $index => $arg) {
        echo 'Argument' . $index . ' is ' . $arg . "\n";

        unset($args[$index]);
    }
}

foo(1, 2, 3);

編集1

呼び出すとき、たとえばfoo(17, 20, 31) func_get_args()最初の引数が変数を表していることを知りません。$first各数値インデックスが何を表すかがわかっている場合は、これ(または同様の方法)を実行できます。

function bar()
{
    list($first, $second, $third) = func_get_args();

    return $first + $second + $third;
}

echo bar(10, 21, 37); // Output: 68

特定の変数が必要な場合は、他の変数を省略できます。

function bar()
{
    list($first, , $third) = func_get_args();

    return $first + $third;
} 

echo bar(10, 21, 37); // Output: 47
于 2012-07-14T02:04:29.367 に答える