Avatar ·

Qual é a diferença entre public, private e protected em PHP?

Olá a todos! Comecei a estudar programação orientada a objetos em PHP e não consigo entender a diferença entre os modificadores de acesso public, private e protected. Li a documentação, mas na prática ainda fico confuso. Aqui está uma classe simples: ```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; } } ``` Crio um objeto: ```php $car = new Car(); echo $car->color; // Funciona echo $car->engineStatus; // Erro! $car->refuel(20); // Também não funciona ``` Por que não posso acessar as propriedades engineStatus e fuelLevel diretamente? E qual a diferença entre protected e private, se ambos restringem o acesso? Expliquem, por favor.