Variables statiques en PHP

Subodh Poudel 30 janvier 2023
  1. Variables statiques en PHP
  2. Utilisez le mot-clé self pour accéder à la variable statique à l’intérieur de la classe en PHP
  3. Utiliser le nom de la classe pour accéder à une variable statique en dehors de la classe en PHP
  4. Accéder à la variable statique à l’intérieur de la méthode statique
Variables statiques en PHP

Cet article présentera les variables statiques PHP, expliquera leurs caractéristiques et démontrera différentes manières d’accéder aux variables statiques dans un contexte orienté objet.

Variables statiques en PHP

Les variables d’un programme sont utilisées pour stocker des données ou des valeurs pouvant être utilisées ultérieurement dans un programme. Une variable peut stocker des caractères, des valeurs numériques, des chaînes, des adresses mémoire, etc.

En PHP, nous déclarons ou stockons des valeurs en utilisant le signe dollar $ suivi du nom des variables.

Exemple:

$name = "John Doe";
$marks = 90;

De même, une variable statique est une variable dont la portée ne se termine pas en dehors de la fonction. La portée d’une variable non statique est détruite après la sortie de la fonction.

On peut déclarer une variable statique à l’aide du mot-clé static.

Exemple:

static $name = "John Doe";
static $marks = 90;`

Voyons la propriété de la variable statique avec la démonstration suivante.

Exemple de code :

function total_marks () {
    static $marks = 90;
    $marks ++;
    print $marks;
    print "<br />";
}
total_marks();
total_marks();
total_marks();

Production:

91
92
93

Le code ci-dessus montre que la variable statique conserve sa valeur même après la fin de la fonction. Il existe trois appels différents à la fonction total_marks(), mais la valeur de $marks n’est pas détruite même après la sortie de la fonction.

La valeur ne se réinitialise pas à 90 lorsque le deuxième et le troisième appel de fonction sont effectués. Il continue à s’incrémenter tant que la valeur précédente est conservée.

Appliquons l’exemple ci-dessus à une variable non statique.

Exemple de code :

function total_marks () {
    $marks = 90;
    $marks ++;
    print $marks;
    print "<br />";
}
total_marks();
total_marks();
total_marks();

Production:

91
91
91

La valeur de la variable $marks se réinitialise à 90 à chaque appel de la fonction. Il montre que la variable non statique ne conserve pas sa valeur précédente.

Utilisez le mot-clé self pour accéder à la variable statique à l’intérieur de la classe en PHP

Nous pouvons utiliser le mot-clé self pour accéder à une variable statique à l’intérieur d’une classe. Un double-virgule :: est utilisé après le mot-clé self et la variable statique suit juste après.

Le mot clé this ne fonctionne pas pour les variables statiques car la variable statique n’appartient pas à un objet.

Par exemple, dans une classe, Student crée une variable statique $name et lui attribue une valeur John Doe. A l’intérieur d’une fonction, who() utilise le mot clé self avec le double-virgule pour accéder à la variable statique $name, et enfin, invoque la fonction avec un objet de la classe.

Exemple de code :

class Student {
    public static $name = "John Doe";
    public function who() {
    echo self::$name;
    }
}
$obj = new Student;
$obj->who();

Production:

John Doe

Utiliser le nom de la classe pour accéder à une variable statique en dehors de la classe en PHP

Les variables statiques sont accessibles directement sans créer d’instance de la classe. Pour accéder à une variable statique en dehors de la classe, on peut écrire le nom de la classe suivi d’un double-virgule (::) suivi du nom de la variable statique.

Par exemple, à l’intérieur d’une classe, Student crée une variable statique comme dans la première méthode. Ensuite, écrivez Student:$name en dehors de la classe pour accéder à la variable statique.

Exemple de code :

class Student {
    public static $name = "John Doe";
}
echo Student::$name;

Production:

John Doe

La variable statique $name est accessible en dehors de la classe à l’aide du nom de la classe.

Accéder à la variable statique à l’intérieur de la méthode statique

Dans le premier exemple, nous avons appris comment accéder aux variables statiques à l’intérieur d’une classe. Là, nous avons accédé à une variable statique à l’intérieur d’une méthode non statique.

Cette section placera la variable statique dans une méthode statique et y accédera. Nous pouvons écrire le mot-clé static avant la fonction pour créer une méthode statique, accéder aux fonctions statiques sans créer d’instance de la classe et utiliser le nom de la classe pour appeler la méthode statique.

Exemple de code :

class Student {
    public static $name = "John Doe";
    public static function who() {
    echo self::$name;
    }
}
Student::who();

Production:

John Doe

Ici, nous avons accédé à la méthode statique who() avec la classe Student en utilisant l’opérateur ::. Nous avons utilisé le mot clé self pour accéder à la variable statique à l’intérieur de la méthode.

Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn