Сегодня мы с вами поговорим о модификаторах доступа, и о том, как получить доступ к свойствам и методам класса изнутри.
Поехали!
На сегодня все
_________________________________________________________________________
Если у вас возникли вопросы - пишите в теме. Надеюсь, отвечу :)
Если вы нашли у меня ошибку - пишите в ЛС, чтобы не засорять тему - поправлю.
Если вы хотите дополнить меня - пишите в теме, либо в ЛС - добавлю, оставлю credits.
Поехали!
Модификаторы Доступа позволяют управлять доступом к методам и свойствам. Видимость свойств и методов может быть определена ключевыми словами: public, private, protected.
- Модификатор public позволяет обращаться к свойствам и методам отовсюду.
- Модификатор private позволяет обращаться к свойствам и методам только внутри текущего класса.
- Модификатор protected позволяет обращаться к свойствам и методам только текущего класса и класса, который наследует свойства и методы текущего класса.
Чтобы использовать модификатор доступа, нужно перед именем переменной или функции класса поставить его название (
Например, создадим класс:
Теперь попробуем установить и вывести значение public-переменной:
Этот код выведет 5, так как переменная $publ - public.
Но если мы попытаемся тоже самое сделать с $priv:
То тут будет ошибка, т.к. $priv - private.
Тоже самое и с функциями.
public
, private
или protected
).Например, создадим класс:
Код:
class SomeClass {
public $publ;
private $priv;
public function publFunc() {
echo "Работает!";
}
private function privFunc() {
echo "Работает!";
}
}
$someObj = new SomeClass;
Код:
$someObj->publ = 5;
echo $someObj->publ;
Но если мы попытаемся тоже самое сделать с $priv:
Код:
$someObj->priv = 5;
echo $someObj->priv;
Тоже самое и с функциями.
Чтобы получить доступ к свойствам и методам изнутри самого класса, необходимо использовать указатель
Рассмотрим пример со следующим классом:
Напрямую обратиться к
Данный код выведет "David", как и ожидалось.
$this
.Рассмотрим пример со следующим классом:
Код:
class SomeClass {
private $name;
public function getName() {
return $this->name;
}
public function setName($name) {
$this->name = $name;
}
}
$someObj = new SomeClass;
$someObj->name
мы не можем, т.к. она private. Но, мы к ней можем обратиться изнутри класса, например, с помощью методов:
Код:
$someObj->setName("David");
echo $someObj->getName();
_________________________________________________________________________
Если у вас возникли вопросы - пишите в теме. Надеюсь, отвечу :)
Если вы нашли у меня ошибку - пишите в ЛС, чтобы не засорять тему - поправлю.
Если вы хотите дополнить меня - пишите в теме, либо в ЛС - добавлю, оставлю credits.