Avatar ·

PHP中public、private和protected的区别是什么?

大家好!我刚开始学习PHP中的面向对象编程,一直搞不懂访问修饰符public、private和protected之间的区别。我读过文档,但在实践中还是感到困惑。 这是我写的一个简单类: ```php class Car { public $color = 'red'; private $engineStatus = 'off'; protected $fuelLevel = 100; public function startEngine() { $this->engineStatus = 'on'; } private function checkFuel() { return $this->fuelLevel > 0; } protected function refuel($liters) { $this->fuelLevel += $liters; } } ``` 我创建了一个对象: ```php $car = new Car(); echo $car->color; // 可以工作 echo $car->engineStatus; // 报错! $car->refuel(20); // 也不工作 ``` 为什么我不能直接访问engineStatus和fuelLevel属性?而且如果protected和private都限制访问,它们之间有什么区别?请用