2012-07-14 7 views
6

Duplicar posibles:
PHP get all arguments as array?argumentos dinámicos en función de php

Bueno,

en Java que pueda hacer esto (pseudocódigo):

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

y entonces:

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

¿Algo como esto en php?

EDITAR

que ahora que puedo pasar un array como hello(array(bla, bla)), pero puede que podría existir la manera documento arriba mencionados, ¿verdad?

+3

Ver http: // php .net/manual/es/function.func-get-args.php –

Respuesta

22

Ver 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

Cuando se llama a foo(17, 20, 31)func_get_args() no saben que el primer argumento representa la variable $first por ejemplo. Cuando sabes lo que cada índice numérico representa usted puede hacer esto (o similar):

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

    return $first + $second + $third; 
} 

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

Si quiero una variable específica, que puede ommit el que los demás:

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

    return $first + $third; 
} 

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

eres tan rápido y furioso: D Era lo que buscaba. ¡Gracias! y el resto de la gente también – manix

+0

¡Jajaja, eres bienvenido! –

+0

puedo hacer esto: 'func_get_args ('argument_name')'? para obtener el valor de un argumento –

Cuestiones relacionadas