Maison >développement back-end >tutoriel php >Pourquoi PHP 8.0 empêche-t-il les paramètres obligatoires de suivre les paramètres facultatifs ?

Pourquoi PHP 8.0 empêche-t-il les paramètres obligatoires de suivre les paramètres facultatifs ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-15 18:12:14235parcourir

Why Does PHP 8.0 Prevent Required Parameters from Following Optional Parameters?

"Le paramètre obligatoire doit précéder le paramètre facultatif"

Dans les versions PHP antérieures à 8.0, les déclarations de fonction permettaient aux paramètres facultatifs d'être suivis par les paramètres requis . Cette pratique était obsolète dans PHP 8.0, entraînant des erreurs telles que "Le paramètre obligatoire $xxx suit le paramètre facultatif $yyy."

Explication :

Ce style de déclaration de fonction était irrationnel car il obligeait tous les paramètres (sauf le dernier requis) à être spécifiés lors des appels de fonction. De plus, cela conduisait à des ambiguïtés lors de l'utilisation de la classe ReflectionFunctionAbstract pour l'analyse des fonctions et des méthodes.

Solution :

Pour résoudre l'erreur de dépréciation, réécrivez la fonction pour supprimer les valeurs par défaut. à partir des paramètres antérieurs, en garantissant que les paramètres obligatoires sont déclarés avant les paramètres facultatifs :

function test_function(int $var1, int $var2) {
    return $var1 / $var2;
}

En adhérant à cette règle, les signatures de fonction devenir plus logique et suivre l'attente selon laquelle les paramètres requis doivent précéder les paramètres facultatifs.

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!

Déclaration:
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