Avatar ·

Wann verwendet man self und wann $this in PHP? Wir klären die Sichtbarkeit

Hallo zusammen! Ich habe angefangen, OOP in PHP zu lernen, und verwechsle ständig, wann man `self` und wann `$this` verwenden soll. Anscheinend greifen beide auf Eigenschaften und Methoden einer Klasse zu, aber es gibt einen Unterschied, den ich nicht verstehen kann. Hier ist ein einfaches Beispiel, das mich verwirrt. Ich habe eine Klasse mit einer Konstante und einer normalen Eigenschaft: ```php class Car { const WHEELS = 4; public $color = 'red'; public function showInfo() { echo "Räder: " . self::WHEELS . "\n"; echo "Farbe: " . $this->color . "\n"; } } $car = new Car(); $car->showInfo(); ``` Warum schreibe ich für die Konstante `self::WHEELS` und für die Eigenschaft `$this->color`? Was passiert, wenn ich versuche, `self::$color` oder `$this::WHEELS` zu schreiben? Funktioniert das bei Vererbung? Zum Beispiel, wenn ich eine Kindklasse erstelle und die Konstante oder Eigenschaft überschreibe, wie greife ich dann richtig darauf zu? Ich habe schon über statische Methoden und Eigenschaften gelesen, aber ich habe immer noch das Gefühl, die Logik nicht vollständig zu verstehen. Bitte erklärt es mir.