Contexte :
Dans PHP 8.1, spécification des types de retour pour les méthodes deviennent plus répandues, entraînant des conflits avec les implémentations existantes.
Problème :
Lorsque le type de retour d'une méthode passe d'un type compatible à un type incompatible ou n'est pas spécifié, la dépréciation suivante un avis apparaît :
Deprecated: Return type of [Method Name] should either be compatible with ..., or the #[\ReturnTypeWillChange] attribute should be used...
Implications de la covariance des types de retour :
PHP 7.0 a introduit les types de retour, garantissant un comportement cohérent pour l'appel du code basé sur le contrat spécifié. Les classes d'extension ou d'implémentation doivent conserver des types de retour identiques ou plus spécifiques.
Contexte de la dépréciation :
Avec l'ajout des types d'union dans PHP 8.0, les fonctions et méthodes internes ont obtenu le type de retour caractéristiques. Cependant, l’application de ces types romprait la compatibilité ascendante. Au lieu de cela, un avis de dépréciation a été introduit pour les modifications provisoires.
Objectif de l'attribut #[\ReturnTypeWillChange] :
Cet attribut indique un changement prévu dans le type de retour. PHP 8.1 ignore l'avis de dépréciation pour les méthodes marquées avec cet attribut, permettant ainsi la prise en charge des anciennes versions de PHP.
Que faire :
Remarque : Les types de retour forcés sont probables dans PHP 9.0, prévoyez donc de traiter les attributs #[\ReturnTypeWillChange] en conséquence.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3