После авторизации Вы получите доступ к файлам, скрытым материалам сайта, исходным кодам
возможность комментировать и т.д.

Вы можете авторизоваться на сайте всего одним кликом:

2016-07-28
Основы PHP → Модификаторы доступа
PHP, Область видимости матода, Класс, Доступы

Ранее мы уже говорили о том, что классы инкапсулируют логику своей работы, предоставляя вовне свой интерфейс в виде методов и, возможно, отдельных свойств. Эта возможность реализована в PHP с помощью так называемых спецификаторов доступа к полям и методам класса...

Спецификаторы (модификаторы) доступа

Спецификаторы — это ключевые слова, которые записываются перед полем и методом класса и определяют его доступность. В PHP существуют три спецификатора, или по-другому — модификатора, доступа.

Модификатор public позволяет обращаться к свойствам и методам отовсюду.

Модификатор private позволяет обращаться к свойствам и методам только внутри текущего класса.

Модификатор protected позволяет обращаться к свойствам и методам только текущего класса и класса, который наследует свойства и методы текущего класса.

Продемонстрируем работу модификаторов на примере:

class Article
{
   private $id;
   protected $content;
   public $title;

   // Функция вывода статьи имеет доступ ко всем полям класса
   function view()
   {
      echo "<h1>$this->id — $this->title</h1>"."<p>$this->content</p>";
   }
}

echo $a->id;    // Ошибка: модификатор private не позволяет получить доступ

echo $a->content;    // Ошибка: модификатор protected не позволяет получить доступ

echo $a->title;      // Ошибки нет: модификатор public позволяет получить доступ

class NewsArticle extends Article
{
   ...
   // Функция для вывода статьи имеет доступ
   // к полям content и title, но не id!

   function view()
   {
      echo "<h1>$this->title</h1><p>$this->content</p>";
      echo "$this->id"; // Ошибка: нет доступа к полю id с модификатором private
   }
}

Модификаторы доступа организуют некое искусственное ограничение возможностей классов, которое служит для того, чтобы согласовать их функционал с изначально продуманной логикой их работы.

Поля и методы классов, объявленные без использования модификаторов, считаются публичными, т. е. как если бы они были объявлены с модификатором public.

490
0
Пожалуйста, авторизируйтесь, чтобы скачать архив с файлами урока