В этой части учебника, вы наконец узнаете что такое в PHP private, protected и public, пожалуй, это одна из важнейших тем в ООП, особенно она пригодится когда будем изучать наследование.
Что такое область видимости:
Область видимости, это значения для обозначения доступа свойств или методов другим классам или что можно вызвать и использовать вне родного класса.
Нужны они для безопасности и чтобы не ломать класс изменениями важных компонентов.
Тип видимости пишется в начали перед каждым свойством и методов.
public:
Это пожалуй самое простое и понятное тип области видимости, оно даёт полный доступ к свойству и методы, из любой точки программы, собственно говоря, мы его везде писали то бы иметь доступ к свойствам из любой точки программы.
Так как, мы его везде писали, я больше нечего про него не буду писать, потому что, на мой взгляд и так с ним всё понятно.
private:
Вот этот тип уже не много по интереснее, он просто запрещает везде использование свойства или метода, кроме как внутри класса и объекта.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | // Создаём класс User class User { // Объявление свойства name и surname public $name; // name public или публичный private $surname; // surname private или приватный // Конструктор класса public function __construct ($name, $surname) { $this -> name = $name; $this -> surname = $surname; } // Метод для вывода имени public function show_name () { echo "Имя: " . $this -> name . "</br>"; echo "Фамилия: " . $this -> surname . "</br>"; } } // Создаём объект класса User $user = new User("Вова", "Пупкин"); echo $user -> name; // Вывод имени echo $user -> surname; // Вывод фамилии |
В этой программе я сделал имя публичным, а фамилию приватным, вот что получилось.
Как видите, когда хотим вывести фамилию она не выводится, а выводится ошибка, при этом, если мы будим использовать метод show_name()
, то всё выведется.
Как видите, всё нормально и конструктор тоже нормально выводится.
Обычно так и делается, свойства приватные (private
), а методы публичные и если надо получить свойство вне класса, то используется для этого метод, который возвращает свойство.
protected:
Это пожалуй самый интересный тип, так как он приватный, но более точный, то есть, он как приватный нельзя использовать вне своего класса выводит ошибку и в наследованном классе тоже, тогда как обычный приватный не выводит ошибку.
Пока что, про protected особо нечего сказать, про него вы подробно узнаете в следующей части, там будет рассказываться про наследование.
Вывод:
Как видите в PHP private, protected и public, это область видимости свойства или метода, эта была не большая часть, так как, практически не чего сказать про это, но в следующей части ещё раз затроним эту тему.