$this->doStuff(); // can call the protected function return $this->status; } function __construct($c = 'blue') { $this->color = $c; } } // create an instance of Car class $myCar = new Car(); echo '<p>' . $myCar->color . '</p>'; echo '<p>' . $myCar->getStatus() . '</p>'; echo '<p>' . $myCar->doMoreStuff() . '</p>'; // works echo '<p>' . $myCar->flag . '</p>'; // doesn't work echo '<p>' . $myCar::$flag . '</p>'; // works echo '<p>' . Car::$flag . '</p>'; // must reference the class::property class SUV extends Car { public $has4WD = 'yes'; } $newCar = new SUV('black'); echo '<p>' . $newCar->color . '</p>'; echo '<p>' . $newCar->getStatus() . '</p>'; echo '<p>' . $newCar->has4WD . '</p>'; echo '<p>' . $newCar->doMoreStuff() . '</p>'; // wouldn't work