O que o =&operador de atribuição (equals-ampersand) faz no PHP?
Está obsoleto?
O que o =&operador de atribuição (equals-ampersand) faz no PHP?
Está obsoleto?
Respostas:
Não está obsoleto e é improvável que seja. É a maneira padrão de, por exemplo, fazer parte de um array ou espelho de objeto alterações feitas em outro, em vez de copiar os dados existentes.
Chama-se atribuição por referência , o que, para citar o manual, “significa que ambas as variáveis acabam apontando para os mesmos dados, e nada é copiado para lado nenhum” .
A única coisa que está obsoleta =&é "atribuir o resultado de newpor referência" no PHP 5 , o que pode ser a fonte de qualquer confusão. newé atribuído automaticamente por referência, então &é redundante / obsoleto em $o = &new C;, mas não em $o = &$c;.
Como é difícil pesquisar, observe que =&( igual ao e comercial ) é o mesmo que = &( igual ao e comercial de espaço ) e geralmente é escrito de forma que vá para a outra variável como $x = &$y['z'];ou $x = &$someVar( nome da variável do símbolo de cifrão e comercial ). Exemplo simplificado da documentação:
$a = 3;
$b = &$a;
$a = 4;
print "$b"; // prints 4
Aqui está um link útil para uma seção detalhada sobre Atribuir por referência no manual do PHP . Essa página faz parte de uma série de referências - vale a pena reservar um minuto para ler a série inteira.
São dois operadores diferentes. =é uma atribuição como você provavelmente sabe. E &significa que a variável deve ser acessada por referência e não por valor.