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 !
<<>>