Maison >développement back-end >tutoriel php >Pourquoi PHP 8.0 lance-t-il « Le paramètre requis $xxx suit le paramètre facultatif $yyy » ?

Pourquoi PHP 8.0 lance-t-il « Le paramètre requis $xxx suit le paramètre facultatif $yyy » ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-03 07:39:13556parcourir

Why Does PHP 8.0 Throw

Erreur PHP : "Le paramètre requis $xxx suit le paramètre facultatif $yyy"

Lors de la mise à niveau vers PHP 8.0, les développeurs peuvent rencontrer une erreur de dépréciation indiquant qu'un paramètre obligatoire suit un paramètre facultatif. Cette erreur résulte d'une utilisation incorrecte des valeurs par défaut pour les paramètres de fonction requis.

Description du problème :

Auparavant, dans les versions PHP antérieures à 8.0, les fonctions pouvaient être déclarées avec un mélange de paramètres obligatoires et facultatifs en attribuant des valeurs par défaut aux paramètres requis. Cependant, cette pratique est obsolète en raison de ses défauts inhérents.

Par exemple, considérons le code PHP suivant :

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

Dans ce code, $var1 est un paramètre obligatoire avec une valeur par défaut valeur de 2. $var2 est également un paramètre obligatoire sans valeur par défaut. Ce code fonctionnerait correctement dans les versions PHP antérieures mais déclenche l'erreur de dépréciation dans PHP 8.0.

Nouvelles exigences :

Dans PHP 8.0 et versions ultérieures, il est désormais requis que les paramètres obligatoires doivent être déclarés avant les paramètres facultatifs. Ce changement garantit que tous les paramètres requis sont fournis lors de l'appel de la fonction, éliminant ainsi les sources potentielles de confusion et d'erreurs.

Solution :

Pour résoudre l'erreur, supprimez simplement le valeur par défaut du paramètre obligatoire précédent. Le code doit être réécrit comme suit :

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

En effectuant cette modification, la fonction adhère aux nouvelles exigences PHP et ne déclenchera plus l'erreur de dépréciation.

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