何时在 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` 会发生什么?这在继承中有效吗?例如,如果我创建一个子类并重写常量或属性,那么如何正确访问?
我已经阅读了关于静态方法和属性的内容,但仍然觉得没有完全理解逻辑。请解释一下。