Maison > développement back-end > tutoriel php > Pourquoi les paramètres de fonction PHP 8.0 obligatoires doivent-ils désormais précéder ceux facultatifs ?

Pourquoi les paramètres de fonction PHP 8.0 obligatoires doivent-ils désormais précéder ceux facultatifs ?

Mary-Kate Olsen
Libérer: 2024-11-30 08:54:11
original
120 Les gens l'ont consulté

Why Are Required PHP 8.0 Function Parameters Now Required to Precede Optional Ones?

Changements de syntaxe des paramètres de fonction PHP 8.0 : les paramètres obligatoires doivent précéder les paramètres facultatifs

PHP 8.0 introduit un avertissement de dépréciation lorsqu'un paramètre de fonction obligatoire suit un paramètre facultatif. Cette erreur se produit car les anciennes versions de PHP autorisaient ce comportement, ce qui n'avait aucun sens puisque tous les paramètres jusqu'au dernier requis devaient être spécifiés.

Exemple :

Considérez la fonction suivante :

function test_function(int $var1 = 2, int $var2) {
    return $var1 / $var2;
}
Copier après la connexion

En PHP 8.0, cette fonction générera la dépréciation suivante avertissement :

Deprecated: Required parameter $var2 follows optional parameter $var1 in...
Copier après la connexion

Raison de la dépréciation :

Ce changement garantit que les signatures de fonction adhèrent à l'hypothèse de bon sens selon laquelle les paramètres obligatoires doivent être déclarés avant les paramètres facultatifs. Cela clarifie le comportement de la fonction et simplifie l'analyse à l'aide de la classe ReflectionFunctionAbstract.

Solution :

Pour résoudre ce problème, supprimez simplement la valeur par défaut des paramètres précédents. Pour l'exemple ci-dessus, la fonction serait réécrite comme :

function test_function(int $var1, int $var2) {
    return $var1 / $var2;
}
Copier après la connexion

Ce changement ne devrait pas affecter la fonctionnalité de la fonction car elle ne pourrait jamais être appelée sans déclarer tous les paramètres.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal