Avatar ·

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.