#7. 4 php Управление доступом к свойствам и методам класса
Primary tabs
В PHP существует три модификатора доступа к свойствам и методам класса:
- public -- нет ограничений на доступ.
- private -- доступ разрешен только изнутри класса
- protected -- доступ разрешен только изнутри класса и всех его потомков
По умолчанию все свойства и методы объявлены как public. Рекомендуется всегда явно указывать модификатор доступа для всех свойств и методов.
Поскольку свойство name
класса Animal
объявлено как private, доступ к нему из кода за пределами класса будет заблокирован. Ниже приведен пример попытки доступа к приватному свойству name
.
<?php class Animal { private $name; public function set_name($text) { $this->name = $text; } public function get_name() { return $this->name; } } $lion = new Animal; $lion->set_name("Бонифаций"); echo "Имя нового льва: ", $lion->name, "."; ?>
При выполнении данного кода будет выведено следующее сообщение об ошибке:
Fatal error: Cannot access private property Animal::$name in test.php on line 19
Наряду с приватными свойствами можно объявить и приватные методы класса, например, метод get_name
может быть объявлен как приватный:
<?php class Animal { private $name; public function set_name($text) { $this->name = $text; } private function get_name() { return $this->name; } } $lion = new Animal; $lion->set_name("Бонифаций"); echo "Имя нового льва: ", $lion->get_name(), "."; ?>
Fatal error: Call to private method Animal::get_name() from context '' in test.php on line 19
При использовании ключевого слова protected свойства и методы класса будут доступны изнутри данного класса, а также из всех классов, порожденных на основе данного. Порождение классов и наследование свойств и методов будет описано в следующих разделах данной главы.
- Log in to post comments
- 409 reads