Avatar ·

何时在 PHP 中使用 self 以及何时使用 $this?理解作用域

大家好!我开始学习 PHP 中的 OOP,但经常混淆何时使用 `self` 以及何时使用 `$this`。似乎两者都访问类的属性和方法,但显然有区别,我无法理解。 这是一个让我困惑的简单示例。我有一个带有常量和普通属性的类: ```php class Car { const WHEELS = 4; public $color = 'red'; public function showInfo() { echo "车轮数:" . self::WHEELS . "\n"; echo "颜色:" . $this->color . "\n"; } } $car = new Car(); $car->showInfo(); ``` 为什么对于常量我写 `self::WHEELS`,而对于属性写 `$this->color`?如果我尝试写 `self::$color` 或 `$this::WHEELS` 会发生什么?这在继承中有效吗?例如,如果我创建一个子类并重写常量或属性,那么如何正确访问? 我已经阅读了关于静态方法和属性的内容,但仍然觉得没有完全理解逻辑。请解释一下。