Como corrigir o erro Deprecated: Assigning the return value of new by reference is deprecated

Esse erro aparece em versões mais recentes do PHP (como a 5.3 em diante) quando o código tenta criar uma instância de objeto passando-a por referência. A prática de atribuir new com & na frente foi descontinuada e não é mais suportada.

Por que acontece? Porque a criação de objetos no PHP já é feita por referência de forma nativa, não sendo necessário (e nem permitido) utilizar o operador &.

1. Exemplo do erro

$rs =& new Classe();

2. Como corrigir

Remova o operador & da frente da declaração, ficando assim:

$rs = new Classe();

3. Onde aplicar a correção

No caso do Joomla (e também em outros CMS mais antigos), verifique a linha indicada na mensagem de erro, abra o arquivo citado e faça a substituição conforme mostrado.

Resumo: Sempre que encontrar =& new, substitua por = new. Isso garante compatibilidade com versões modernas do PHP e elimina os avisos de deprecated.
這篇文章有幫助嗎? 21 用戶發現這個有用 (33 投票)