2012-07-14 21 views
6

thể trùng lặp:
PHP get all arguments as array?đối số năng động trong php function

Vâng,

Trong java tôi có thể làm được điều này (giả):

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

và sau đó:

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

Có điều gì đó giống như vậy trong php?

EDIT

tôi bây giờ mà tôi có thể vượt qua một mảng như hello(array(bla, bla)), nhưng có thể có thể tồn tại đường đi mencioned trên, phải không?

+3

Xem http: // php .net/manual/en/function.func-get-args.php –

Trả lời

22

Xem 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); 

EDIT 1

Khi bạn gọi foo(17, 20, 31)func_get_args() không biết rằng đối số đầu tiên đại diện cho biến $first ví dụ. Khi bạn biết những gì mỗi số chỉ số đại diện cho bạn có thể làm điều này (hoặc tương tự):

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

    return $first + $second + $third; 
} 

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

Nếu tôi muốn có một biến cụ thể, tôi có thể ommit những người khác một:

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

    return $first + $third; 
} 

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

bạn nhanh đến nỗi giận dữ: D Đó là điều tôi đang tìm kiếm. Cảm ơn bạn! và những người còn lại quá – manix

+0

Hahaha, bạn được chào đón! –

+0

Tôi có thể làm điều này: 'func_get_args ('argument_name')'? để có được giá trị của một đối số. –

Các vấn đề liên quan