"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment gérer les conflits de types de retour dans PHP 8.1 ?

Comment gérer les conflits de types de retour dans PHP 8.1 ?

Publié le 2024-11-17
Parcourir:281

How to Handle Return Type Conflicts in PHP 8.1?

Référence : Conflit de type de retour vs. #[\ReturnTypeWillChange] Attribut

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 :

  1. Identifiez la méthode mentionnée dans l'avis de dépréciation et le type de retour attendu.
  2. Si possible, modifiez le type de retour de la méthode pour qu'il corresponde au type attendu.
  3. Si nécessaire, supprimez temporairement l'avis de dépréciation en ajoutant le #[ Attribut \ReturnTypeWillChange].

Remarque : Les types de retour forcés sont probables dans PHP 9.0, prévoyez donc de traiter les attributs #[\ReturnTypeWillChange] en conséquence.

Dernier tutoriel Plus>

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