Как использовать модификаторы доступа в ООП на PHP
Что такое модификаторы доступа? Свойства и методы могут иметь модификаторы доступа, которые позволяют изменять способ доступа к ним. В PHP существует три модификатора доступа: public, private и protected.
Public
Значение по умолчанию - public: это означает, что если вы ничего не задаете, свойство или метод являются общедоступными.
class X {
$a;
$b;
function aa()
{
echo $this->a;
}
}
Разберем пример, допустим, если бы мы написали:
$ax = new X();
echo $ax->a;
Или так:
$ax->aa();
Оба эти действия являются правильными, поскольку их область действия является публичной.
Private
Частные свойства или методы, напротив, недоступны вне класса.
class X {
private $a;
private $b;
function aa()
{
}
private function bb()
{
return "bbb";
}
}
В приведенном выше классе мы не можем получить значение $a с помощью echo $a->a, потому что $a является публичным свойством.
Мы также не можем использовать echo для отображения $a->bb() напрямую.
Если вы хотите получить доступ к значению частного свойства или метода вне класса, вам нужно использовать непубличную функцию.
Пример
class X {
private $a;
private $b;
function aa()
{
}
private function bb()
{
return "bbb";
}
public function bbb()
{
return $this->bb();
}
}
В приведенном выше примере мы можем использовать функцию bbb() для возврата значения функции bb()
Protected
Итак, теперь вы знакомы с основным различием между частным и публичным. Но есть и другое, менее очевидное различие между ними.
Одно из применений private и protected заключается в контроле того, какие свойства и методы будут наследоваться, а какие нет.
Публичные свойства и метод наследуются всеми дочерними классами. В то время как частные свойства и методы не могут быть унаследованы подклассом. Однако частные свойства и методы не могут наследоваться подклассами, и они не имеют ничего общего с вашими дочерними классами. Если вы хотите, чтобы подклассы наследовали свойство, но не хотели, чтобы они были доступны за пределами класса, вам следует вместо этого установить для них значение protected.
Комментарии
Для того чтобы оставить свое мнение, необходимо зарегистрироваться на сайте