Quand utiliser self et quand $this en PHP ? Comprendre la portée
Bonjour à tous ! J'ai commencé à étudier la POO en PHP et je confonds constamment quand utiliser `self` et quand utiliser `$this`. Apparemment, les deux accèdent aux propriétés et méthodes de la classe, mais il y a clairement une différence que je n'arrive pas à saisir.
Voici un exemple simple qui me trouble. J'ai une classe avec une constante et une propriété ordinaire :
```php
class Car {
const WHEELS = 4;
public $color = 'red';
public function showInfo() {
echo "Roues : " . self::WHEELS . "\n";
echo "Couleur : " . $this->color . "\n";
}
}
$car = new Car();
$car->showInfo();
```
Pourquoi pour la constante j'écris `self::WHEELS`, et pour la propriété `$this->color` ? Que se passerait-il si j'essayais d'écrire `self::$color` ou `$this::WHEELS` ? Est-ce que cela fonctionne avec l'héritage ? Par exemple, si je crée une classe enfant et que je redéfinis la constante ou la propriété, comment dois-je y accéder correctement ?
J'ai déjà lu sur les méthodes et propriétés statiques, mais je sens que je ne comprends toujours pas complètement la logique. Expliquez-moi, s'il vous plaît.