2009-02-28 21 views
18

Simplemente una pregunta rápida y sin dudas fácil. Soy bastante nuevo en PHP y estoy buscando algún código existente. Intenté encontrar la respuesta a mi pregunta en google, pero fue en vano.'&' antes del nombre del parámetro

¿Puede alguien decirme por favor cuál es el signo '&' antes del parámetro $ var?

function setdefault(&$var, $default="") 
{ 
    if (! isset($var)) 
    { 
    $var = $default; 
    } 
} 

Respuesta

46

Lo pasa por referencia.

¿Huh? Pasar por referencia significa que pasa la dirección de la variable en lugar del valor. Básicamente estás haciendo un puntero a la variable.

http://us.php.net/language.references.pass

+6

+1 Por ** ¿Huh? **, me hizo reír –

1

& medios pasar por referencia; lo que hace ese código es verificar si la variable pasada a la función existe realmente en el alcance global. Sin el & trataría de tomar primero una copia de la variable, lo que provoca un error si no existe.

19

Significa que la función obtiene la referencia al valor original del argumento $var, en lugar de una copia del valor.

Ejemplo:

function add(&$num) { $num++; } 

$number = 0; 
add($number); 
echo $number; // this outputs "1" 

Si add() no tendría el signo-signo en el firma de la función, el eco de salida sería "0", ya que el valor original fue nunca cambió.

2

Esto significa que está pasando una variable por referencia http://ca3.php.net/language.references.pass. Simplemente, esto significa que la función está obteniendo una variable real y no una copia de la variable. Cualquier cambio que realice en esa variable en la función se reflejará en la persona que llama.

Cuestiones relacionadas