Avatar ·

Quando usar self e quando usar $this em PHP? Entendendo o escopo de visibilidade

Olá a todos! Comecei a estudar POO em PHP e fico constantemente confuso sobre quando usar `self` e quando usar `$this`. Ambos parecem acessar propriedades e métodos da classe, mas claramente há uma diferença que não consigo captar.\n\nAqui está um exemplo simples que me deixa confuso. Tenho uma classe com uma constante e uma propriedade comum:\n\n```php\nclass Car {\n const WHEELS = 4;\n public $color = 'red';\n \n public function showInfo() {\n echo "Rodas: " . self::WHEELS . "";\n echo "Cor: " . $this->color . "";\n }\n}\n\n$car = new Car();\n$car->showInfo();\n```\n\nPor que para a constante eu escrevo `self::WHEELS` e para a propriedade `$this->color`? O que aconteceria se eu tentasse escrever `self::$color` ou `$this::WHEELS`? Isso funciona em herança? Por exemplo, se eu criar uma classe filha