Видимость (доступность) переменной (свойства) или метода класса может быть определена путем добавления одного из префиксов public, protected или private.
Члены объявление как public доступны отовсюду: из самого класса, в котором делается объявление члена, из классов-наследников, вне классов.
Члены объявление как protected доступны из самого класса, в котором делается объявление члена, и классов-наследников.
Члены объявление как private доступны исключительно из самого класса, в котором делается объявление члена.
Переменные, используемые классом, будем называть членами класса.
Итак. Члены класса могут быть объявлены как public (публичный), protected (защищенный) или private (частный).
<?php class MyClass { public $public = 'Public'; protected $protected = 'Protected'; private $private = 'Private'; function printHello() { echo $this->public,'<br/>'; echo $this->protected,'<br/>'; echo $this->private,'<br/>'; } } $obj = new MyClass(); echo $obj->public,'<br/>'; // Работает //echo $obj->protected; // Выдаст сообщение Fatal Error //echo $obj->private; // Выдаст сообщение Fatal Error $obj->printHello(); // Выведет значение всех переменных echo "----------------</br>"; class MyClass2 extends MyClass { // Можно переопределить переменные public и protected method, но не private protected $protected = 'Protected2'; function printHello() { echo $this->public,'<br/>'; echo $this->protected,'<br/>'; //echo $this->private,'<br/>'; // Выдаст сообщение Undefined property } } $obj2 = new MyClass2(); echo $obj2->public,'<br/>'; // Works //echo $obj2->private; // Выдаст сообщение Undefined property //echo $obj2->protected; // Выдаст сообщение Fatal Error $obj2->printHello(); // Shows Public, Protected2, Undefined ?>