Управление доступом к свойствам и методам
Управление доступом к свойствам и методам
По умолчанию доступ к свойствам и методам класса ничем не ограничен, но не всегда это является допустимым. Например, метод set_name не позволяет присвоить свойству name значение, превышающее по длине 10 символов.
Но при этом остается возможность присвоения некорректного значения свойству name напрямую, например:
Решение заключается в ограничении доступа к свойствам и методам класса при помощи модификаторов доступа. В РНР существуют три модификатора доступа: public — нет ограничений на доступ.private — доступ разрешен только изнутри класса. protected — доступ разрешен только изнутри класса и всех его потомков. По умолчанию все свойства и методы объявляются как public, что означает отсутствие ограничений на доступ к ним снаружи класса. Но если свойство или метод объявлено как private, доступ к нему из кода за пределами класса будет заблокирован. Ниже приведен пример попытки доступа к приватному свойству name:
При выполнении данного кода будет выведено следующее сообщение об ошибке: Fatal error: Cannot access private property Animal::$name in test.php on line 19 Наряду с приватными свойствами можно объявить и приватные методы класса. Например, метод get_name может быть объявлен как приватный: |