PHP - Propriétés Statiques

Salut à toi, futur.e programmeur.se ! Aujourd'hui, nous allons plonger dans le monde passionnant des propriétés statiques en PHP. Ne t'inquiète pas si tu es nouveau dans le monde de la programmation - je vais te guider à chaque étape avec la même patience que j'utilise dans ma classe depuis des années. C'est parti !

PHP - Static Properties

Quelles sont les Propriétés Statiques ?

Avant de nous lancer dans le code, comprenons ce qu'elles sont. Imagine que tu es dans une classe (comme la mienne !), et qu'il y a un tableau blanc que tout le monde peut voir et écrire. Une propriété statique est comme ce tableau blanc - elle appartient à la classe elle-même, pas à un.e étudiant.e en particulier (ou à un objet, en termes de programmation).

Caractéristiques Clés des Propriétés Statiques :

  1. Elles sont partagées entre toutes les instances d'une classe.
  2. Elles peuvent être accédées sans créer un objet de la classe.
  3. Elles sont déclarées en utilisant le mot-clé static.

Maintenant, voyons comment cela fonctionne en pratique !

Exemple de Propriétés Statiques

Créons une classe simple appelée Counter pour démontrer les propriétés statiques :

class Counter {
public static $count = 0;

public function increment() {
self::$count++;
}

public static function getCount() {
return self::$count;
}
}

Décomposons cela :

  1. Nous déclarons une propriété statique $count et l'initialisons à 0.
  2. La méthode increment() augmente le compteur de 1.
  3. La méthode getCount() retourne le compteur actuel.

Maintenant, utilisons cette classe :

echo Counter::$count; // Affiche : 0

$counter1 = new Counter();
$counter1->increment();
echo Counter::$count; // Affiche : 1

$counter2 = new Counter();
$counter2->increment();
echo Counter::$count; // Affiche : 2

echo Counter::getCount(); // Affiche : 2

C'est génial, non ? Peu importe combien d'objets Counter nous créons, ils partagent tous le même $count. C'est comme tous les élèves de ma classe qui partagent un seul tableau blanc !

Le Mot-clé "self"

Tu as peut-être remarqué que nous avons utilisé self::$count dans notre classe. Le mot-clé self est comme dire "cette classe" - il se réfère à la classe actuelle. Il est particulièrement utile avec les propriétés et les méthodes statiques.

Élargissons notre classe Counter pour voir d'autres utilisations de self :

class Counter {
public static $count = 0;
private static $secretCount = 100;

public function increment() {
self::$count++;
self::incrementSecretCount();
}

private static function incrementSecretCount() {
self::$secretCount++;
}

public static function getSecretCount() {
return self::$secretCount;
}
}

Ici, nous avons ajouté un $secretCount qui est privé (chut, c'est un secret !). Nous utilisons self pour accéder à la fois aux propriétés et aux méthodes statiques dans la classe.

Le Mot-clé "parent"

Maintenant, parlons de l'héritage et du mot-clé parent. Imagine que tu apprends à cuisiner de tes parents. Tu pourrais utiliser certaines de leurs recettes (méthodes héritées) mais ajouter ta propre touche. En PHP, parent te permet d'accéder aux méthodes et propriétés de la classe parente.

Créons un SuperCounter qui étend notre Counter :

class SuperCounter extends Counter {
public function superIncrement() {
parent::increment();
parent::increment();
self::$count++; // Nous pouvons toujours utiliser self pour la propriété statique héritée
}
}

Utilisons notre nouveau SuperCounter :

$superCounter = new SuperCounter();
$superCounter->superIncrement();
echo SuperCounter::$count; // Affiche : 3

La méthode superIncrement() appelle la méthode parente increment() deux fois, puis incrémente une fois de plus, resulting in a total increase of 3.

Table des Méthodes Statiques

Résumons les méthodes liées aux propriétés statiques que nous avons vues dans un tableau pratique :

Méthode Description
self::$property Accède à une propriété statique à l'intérieur de la même classe
self::method() Appelle une méthode statique à l'intérieur de la même classe
ClassName::$property Accède à une propriété statique depuis l'extérieur de la classe
ClassName::method() Appelle une méthode statique depuis l'extérieur de la classe
parent::method() Appelle une méthode de la classe parente dans une classe enfant

Conclusion

Et voilà, amis ! Nous avons exploré le monde des propriétés statiques en PHP, de l'utilisation de base à l'héritage. Souviens-toi, les propriétés statiques sont comme ce tableau blanc de la classe - partagées par tous et accessibles à quiconque connaît le nom de la classe.

Comme avec n'importe quel outil en programmation, utilise les propriétés statiques avec sagesse. Elles sont excellentes pour des compteurs, des paramètres de configuration, ou toute donnée qui devrait être partagée entre toutes les instances d'une classe. Mais les utiliser en excès peut conduire à du code plus difficile à gérer et à tester.

Continuez à vous entraîner, et bientôt vous utiliserez les propriétés statiques comme un pro ! Et souviens-toi, en programmation comme dans ma classe, il n'y a pas de questions stupides - seulement des opportunités d'apprendre. Bon codage !

Credits: Image by storyset