Avatar ·

Quand utiliser self et quand utiliser $this en PHP ? Différence et exemples

Bonjour à tous ! J'ai commencé à étudier la POO en PHP et je n'arrive pas à comprendre la différence entre `self` et `$this`. Les deux semblent être utilisés à l'intérieur d'une classe pour accéder aux propriétés et méthodes, mais je me trompe constamment. Voici un exemple de mon code : ```php class User { public $name = 'Invité'; public static $count = 0; public function setName($name) { $this->name = $name; // pourquoi pas self ? } public static function getCount() { return self::$count; // pourquoi pas $this ? } } ``` Quand j'écris `$this->name`, tout fonctionne. Mais si j'écris `self::$name`, une erreur apparaît. Et avec la propriété statique, c'est l'inverse : `self::$count` fonctionne, mais `$this->count` non. J'ai lu le manuel, mais c'est trop compliqué. Expliquez en termes simples : quand faut-il utiliser `self::` et quand `$this->` ? Et pourquoi se comportent-ils différemment ? Je suis particulièrement intéressé par le cas de l'héritage — j'ai entendu dire qu'il y a des pièges. Merci d'avance pour votre aide ! <<>>

La différence principale : self