O PHP já faz uma coisa de copiar na gravação em que não cria um novo valor até você mudar alguma coisa, então não há muita memória salva usando referências. Fazer isso pode até mexer com algumas coisas que o PHP faz internamente para reduzir o uso de memória, tornando as coisas ainda piores.
Acrescente a isso o fato de que as referências tornam as coisas um pouco demais em geral. O padrão, e, portanto, o que a maioria das pessoas espera, é passar por valor; quando passo $i
para uma função, dificulta tremendamente as coisas ter que se preocupar se essa função muda misteriosamente $i
para algo completamente diferente e, assim, fazer cópias defensivas por precaução. (Ele já pode modificar $i
se o valor é um objeto, mas, na minha opinião, não deveria.)
Basicamente, eu só gostaria de encontrar passagem por referência útil para "fora" parâmetros, ou seja, as variáveis i esperar para voltar a partir da função, em vez de passar em um la preg_match
's &$matches
. Mesmo para funções que modificam claramente o objeto que está sendo passado, como sort
ou array_pop
, isso parece um pouco nojento ... mas é com isso que estamos presos.