Os documentos usam atribuir por referência (= &), mas isso é necessário no PHP 5?


12

Notei na documentação do Joomla, como no JFactory / getSession , que os exemplos usam assign-by-reference ( =&), em vez de uma atribuição simples ( =).

$session =& JFactory::getSession();

Isso está desatualizado ou cobre intencionalmente os usuários do PHP 4?

Isso é necessário no PHP 5? Ou há algo relacionado ao Joomla que eu ignorei?


Ótima pergunta! Muitas vezes me perguntei se deveria usar o símbolo de igual ee comercial ou apenas o símbolo de igual.
TryHarder 28/04

Alguns documentos não são atualizados. Quando você vê alguma coisa, basta clicar no botão de edição, é um wiki.
Valentin Despa

Respostas:


9

Isso foi usado por PHP4 vezes. A partir do PHP5, os objetos são atribuídos por referência, portanto, não há necessidade de fazer isso explicitamente.


1
no php 5, ele também faz com que muitos avisos rígidos dos padrões existam, e há muitos deles no núcleo do Joomla, às vezes causando momentos divertidos quando você muda para o relatório de erros de desenvolvimento. Outra dessas mudanças no PHP que dificulta a compatibilidade com versões anteriores.
Jordan Ramstad

É ruim no Joomla 1.5, uma vez que foi escrito para suportar o PHP 4.3. Com 2.5 e 3.x, a quantidade de E_STRICTerros no núcleo é mínima, se houver.
Michael

1
Obrigado, eu achava que deveria ter sido uma ressaca do PHP4, mas com o Joomla 1.6+ exigindo o PHP5 + eu estava começando a me perguntar. Ponto secundário, mas os objetos não são "atribuídos por referência" no PHP5. O operador de atribuição por referência não é reqd (na maioria dos casos) porque as instâncias de classe são armazenadas de maneira diferente no PHP5. (As instâncias de classe mantêm um "identificador de objeto" em vez do próprio valor, como no PHP4.) Um "identificador de objeto" é atribuído no PHP5, em vez do valor do objeto. O resultado líquido é semelhante, mas há diferenças.
precisa saber é o seguinte
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.