Comment pouvez-vous déclarer une variable PHP qui conserve sa valeur entre les appels de fonction ?

Comment déclarer une variable PHP qui conserve sa valeur entre les appels de fonction ?

Pour déclarer une variable PHP qui conserve sa valeur entre les appels de fonction, vous devez utiliser la déclaration static.

Explication de la réponse correcte

En PHP, vous pouvez définir une variable static dans une fonction. Contrairement aux variables normales, une variable static ne perd pas sa valeur quand l'exécution de la fonction est terminée. Par conséquent, si vous appelez la fonction encore, la variable static conservera toujours sa dernière valeur.

La déclaration est comme suit :

function myFunction() {
    static $var = 0; // initialisée seulement la première fois
    echo $var;
    $var++;
}

Dans cet exemple, même si la fonction myFunction est appelée plusieurs fois, la variable $var est initialisée seulement lors de la première exécution de la fonction et conserve ensuite sa valeur entre les appels.

Informations complémentaires

Il est important de noter que les autres options de la question, public $var;, global $var; et persistent $var; ne sont pas correctes dans le contexte de cette question.

  • public $var; est généralement utilisé pour définir des propriétés d'une classe qui peuvent être accessibles de n'importe où. Autrement dit, vous pouvez les accéder à l'intérieur de la classe, de ses instances et même à l'extérieur de la classe.

  • global $var; est utilisé pour accéder à une variable globale à l'intérieur d'une fonction.

  • Quant à persistent $var;, celui-ci n'est pas valide en tant que déclaration de variable en PHP. La persistance en PHP est généralement réalisée à travers des mécanismes tels que les sessions et les cookies, plutôt que directement dans la déclaration de la variable.

Il est également important de noter qu'utiliser trop de variables statiques peut rendre le code difficile à comprendre et à maintenir, il est donc préférable de les utiliser avec prudence.

Related Questions

Trouvez-vous cela utile?