2012-07-14 188 views
6

可能重複:
PHP get all arguments as array?動態參數

好,

在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)),但可能會存在這樣上述mencioned,對不對?

+3

請訪問http:// PHP .net/manual/en/function.func-get-args.php – 2012-07-14 02:04:00

回答

22

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 

如果我想要一個特定的變量,我可以ommit別人一個:

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

    return $first + $third; 
} 

echo bar(10, 21, 37); // Output: 47 
+3

你是如此快速的憤怒:D這正是我所追求的。謝謝!其他人也是 – manix 2012-07-14 02:30:14

+0

哈哈哈,歡迎您! – 2012-07-14 02:36:06

+0

我可以這樣做:'func_get_args('argument_name')'?獲得參數的價值。 – 2014-04-28 17:03:42