#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
- 769 reads