PHP. ООП. Область видимости
Мы продолжаем изучать основные принципы ООП в PHP. Сегодня мы рассмотрим область видимости свойств и методов класса. Есть три модификатора области видимости:
- public — свойства или методы, объявленные как public, могут быть доступны в любом месте.
- protected — protected свойства и методы доступны внутри класса, а также в дочерних классах.
- private — доступ к private свойствам и методам имеет только класс, в котором эти свойства или методы объявлены
Если вы не указываете модификатор доступа напрямую, то он будет считаться как public. Также отмечу, что protected и private свойства или методы недоступны вне классов, т.е к ним нельзя обращаться в контексте объектов.
Подробно об области видимости в php можно почитать на официальном сайте php по ссылке
Подробно об области видимости в php можно почитать на официальном сайте php по ссылке
Код урока
<?php
/*
** Область видимости
** Нельзя переопределить private в дочерних классах
**/
class Man {
public $name = "Камиль";
protected $surname = "Абзалов";
private $age = 27;
public function printInfo() {
echo $this->name . " " . $this->surname . " " . $this->age;
}
protected function printProtected() {
echo "Вызов protected метода";
}
protected function printPrivate() {
echo "Вызов private метода";
}
}
class Kamil extends Man {
public $name = "Еще один Камиль";
protected $surname = "c фамилией Абзалов";
}
$man = new Man();
$kamil = new Kamil();
print_r($man);
echo "<br>";
print_r($kamil);
echo "<br>";
echo $man->name;
echo "<br>";
/*echo $man->surname;
echo "<br>";
echo $man->age;
echo "<br>";*/
echo $kamil->name;
echo "<br>";
/*echo $kamil->surname;
echo "<br>";
echo $kamil->age;*/
echo $man->printInfo();
echo "<br>";
/*echo $man->printProtected();
echo "<br>";
echo $man->printPrivate();
echo "<br>"; */
echo $kamil->printInfo();
echo "<br>";
/*echo $man->printProtected();
echo "<br>";
echo $man->printPrivate();
echo "<br>"; */
0 Comments