Contexto:
No PHP 8.1, especificando tipos de retorno para métodos se torna mais predominante, levando a conflitos com implementações existentes.
Problema:
Quando o tipo de retorno de um método muda de um tipo compatível para um tipo incompatível ou não é especificado, a seguinte descontinuação aparece um aviso:
Deprecated: Return type of [Method Name] should either be compatible with ..., or the #[\ReturnTypeWillChange] attribute should be used...
Implicações da covariância do tipo de retorno:
PHP 7.0 introduziu tipos de retorno, garantindo um comportamento consistente para chamar código com base no contrato especificado. As classes de extensão ou implementação devem manter tipos de retorno iguais ou mais específicos.
Antecedentes da depreciação:
Com a adição de tipos de união no PHP 8.0, funções e métodos internos ganharam tipo de retorno especificações. No entanto, impor esses tipos quebraria a compatibilidade com versões anteriores. Em vez disso, um aviso de descontinuação foi introduzido para alterações provisórias.
Finalidade do #[\ReturnTypeWillChange] Atributo:
Este atributo indica uma alteração planejada no tipo de retorno. O PHP 8.1 ignora o aviso de descontinuação para métodos marcados com este atributo, permitindo suporte para versões mais antigas do PHP.
O que fazer:
Nota: Tipos de retorno forçados são prováveis no PHP 9.0, então planeje abordar os atributos #[\ReturnTypeWillChange] adequadamente.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3