Модификаторы доступа (Инкапсуляция)
Есть три модификатора доступа:
- public — создаёт свойства и методы, которые доступны в любом месте кода;
- protected — создаёт свойства и методы, доступные в пределах текущего и наследуемых классов;
- private — создаёт свойства и методы, доступные только в пределах текущего класса.
// создание класса class CustomClass { public $public = 'Public class'; protected $protected = 'Protected class'; private $private = 'Private class'; } // вывод свойств класса $custom = new CustomClass(); echo $custom->public; // Public class echo $custom->protected; // Ошибка, нет доступа к свойству (Fatal error: Cannot access protected property) echo $custom->private; // Ошибка, нет доступа к свойству (Fatal error: Cannot access private property)
Данный механизм, который позволяет ограничить доступ свойств и методов для других объектов, называется инкапсуляция.
Если надо вывести свойства с модификатором protected
или private
, то для этого надо создать отдельный метод.
class CustomClass { public $public = 'Public class'; protected $protected = 'Protected class'; private $private = 'Private class'; public function getProtected() { return $this->protected; } public function getPrivate() { return $this->private; } } // вывод свойств класса $custom = new CustomClass(); echo $custom->getProtected(); // Protected class echo $custom->getPrivate(); // Private class
Авторизуйтесь, чтобы добавлять комментарии