Manual do PHP
Anterior | Capítulo 14. Referências | Próxima

# Passagem por referência

Você pode passar variáveis para funções por referência, então a função poderá modificar seus argumentos. A sintaxe é a seguinte:

`<?php function foo (&$var) { $var++; } $a=5; foo ($a); // $a é 6 aqui ?>`

Note que não há o sinal de referência na chamada da função, somente na definição da função. A marcação na definição da função sozinha é suficiente para configurar corretamente a passagem de argumentos por referência.

As coisas a seguir podem ser passadas por referência:

- Variáveis. Exemplo: `foo($a)`

- Instrução new. Exemplo `foo(new foobar())`

- Outra referência, retornada de uma função. Exemplo:

  `<?php function &bar() { $a = 5; return $a; } foo(bar()); ?>`

  Veja explicações sobre isso em retorno por referência.

Nenhuma outra expressão poderá ser passada por referência, com resultados indefinidos. Por exemplo, o exemplo seguinte de passagem por referência é inválido:

`<?php function bar() // Note a falta do & { $a = 5; return $a; } foo(bar()); foo($a = 5); // Expressão, não é variável foo(5); // Constante, não é variável ?>`

Essas limitações valem para o PHP 4.0.4 em diante.

Anterior | Principal | Próxima
O que as referências não são | Acima | Retornando referências