O que referências não são

Como dito anteriormente, referências não são ponteiros. Isso significa que a construção seguinte não funciona como se possa esperar:

<?php
function foo(&$var)
{
$var =& $GLOBALS["baz"];
}
foo($bar);
?>

O que acontece é que $var em foo será ligada com $bar pelo chamador, mas depois será re-ligada com $GLOBALS["baz"]. Não há como ligar $bar no escopo chamador para outra coisa utilizando-se o mecanismo de referência, pois $bar não está disponível na função foo (ela é representada por $var, mas $var somente tem o conteúdo da variável e não a ligação nome-valor na tabela de símbolos do chamador). Você pode utilizar o retorno por referência para retornar referências de variáveis manipuladas por funções.

To Top