Maison >développement back-end >tutoriel php >Comment remplacer les arguments de fonction par défaut en PHP tout en conservant les autres ?

Comment remplacer les arguments de fonction par défaut en PHP tout en conservant les autres ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-30 21:18:03676parcourir

How to Override Default Function Arguments in PHP While Maintaining Others?

Remplacement des arguments de fonction par défaut en PHP

Les fonctions PHP prennent en charge l'utilisation d'arguments par défaut pour définir des valeurs de secours lors de l'appel de la fonction. Cependant, définir un argument spécifique tout en conservant la valeur par défaut de ses arguments précédents peut s'avérer difficile.

Considérez la fonction suivante :

<code class="php">function foo($blah, $x = "some value", $y = "some other value") {
}</code>

Les arguments par défaut pour $x et $y sont "certains valeur » et « une autre valeur », respectivement. Mais que se passe-t-il si vous souhaitez remplacer la valeur par défaut de $y tout en utilisant la valeur par défaut de $x ?

Remplacement avec des valeurs nulles

Tentatives de remplacement de la valeur par défaut en utilisant null, telles que :

<code class="php">foo("blah", null, "test"); // Does not work</code>

ou

<code class="php">foo("blah", "", "test"); // Does not work</code>

ne donnera pas le résultat souhaité.

Définition par nom de variable

Une autre approche, attribuant la variable par défaut à un nom nommé variable, comme :

<code class="php">foo("blah", $x, $y = "test");</code>

ne parvient pas non plus à remplacer la valeur par défaut.

Solution de contournement pour le remplacement

Pour surmonter ce défi, modifiez la déclaration de fonction comme suit :

<code class="php">function foo($blah, $x = null, $y = null) {
    if (null === $x) {
        $x = "some value";
    }

    if (null === $y) {
        $y = "some other value";
    }
}</code>

Cela vous permet de passer des appels comme :

<code class="php">foo('blah', null, 'non-default y value');</code>

tout en conservant la valeur par défaut de $x.

Remarque :Arguments par défaut uniquement fonctionnent comme derniers arguments de la fonction. Omettre un paramètre et remplacer un paramètre suivant n'est pas possible lors de la déclaration de valeurs par défaut dans la définition de la fonction.

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