Le paramètre facultatif $yyy précède le paramètre obligatoire $xxx
P粉236743689
P粉236743689 2023-10-18 12:51:21
0
2
711

Deprecated: Required parameter $xxx follows optional parameter $yyy in...

Depuis la mise à niveau vers PHP 8.0, cette erreur est générée lors de l'exécution du code suivant :

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

Cela fonctionnait sans problème dans les versions précédentes de PHP.

P粉236743689
P粉236743689

répondre à tous(2)
P粉021553460

Les paramètres requis sans valeurs par défaut doivent venir en premier.

function test_function(int $xxx, int $yyy = 2)
{
    return $xxx * $yyy;
}
P粉427877676

Cette façon de déclarer les fonctionsest obsolète dans PHP 8.0. Cela n'a jamais de sens d'écrire une fonction comme celle-ci car tous les arguments (jusqu'au dernier, qui est obligatoire) doivent être spécifiés lors de l'appel de la fonction. Il utilise également la classe Causing confusion ::getNumberOfRequiredParameters" rel="noreferrer">ReflectionFunctionAbstract pour analyser les fonctions et les méthodes.

La nouvelle dépréciation garantit simplement que les signatures de fonctions suivent l'hypothèse de bon sens selon laquelle les paramètres obligatoires qui doivent être présents doivent toujours être déclarés avant les paramètres facultatifs.

Cette fonction doit être réécrite pour supprimer les valeurs par défaut des paramètres antérieurs. Puisque la fonction ne peut jamais être appelée sans déclarer tous les arguments, cela ne devrait avoir aucun effet sur sa fonctionnalité.

function test_function(int $var1, int $var2) {
    return $var1 / $var2;
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal