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

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

2016-07-30
Основы PHP → Конструкторы
PHP, Конструктор, Задать значения при объявлении, Инициализация

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

Это вполне очевидно. Когда вы создаете объект некоторого класса, вам, скорее всего, требуется заполнить его поля определенными значениями.

Конструкторы

Конечно, можно каждый раз предусматривать в классах некоторую функцию инициализации. Однако в PHP для этой цели предусмотрена специальная функция конструктора, которая вызывается всякий раз при создании объекта. Программист может определить эту функцию, ее входные параметры и реализацию, и тогда она будет вызываться всякий раз, когда будет создаваться новый объект. То есть выполняться оператор new.

Для объявления конструктора используется ключевое слово __construct. Обратите внимание на два подчеркивания, с которых начинается название функции. Двойное подчеркивание — это признак специально зарезервированного названия. В PHP у классов существует еще ряд функций, начинающих с двойного подчеркивания и служащих для решения определенных системных задач. Однако на данном этапе нас интересует только функция __construct(). Давайте посмотрим пример ее определения.

class Article
{
   // поля класса
   private $id;
   private $title;
   private $content;

   function __construct($id, $title, $content)
   {
      $this->id = $id;
      $this->title = $title;
      $this->content = $content;
   }
}

В данном примере конструктор используется для того, чтобы задать значения для полей класса. Обратите внимание, что все поля класса объявлены как private . То есть непосредственно изменить их значение извне невозможно. Их можно задать только через конструктор.

Теперь функция конструктора будет вызываться всякий раз, как мы будем создавать экземпляр класса Article. Например, вот так:

$first_article = new Article(1, 'Первая!', 'Это моя первая статья');
372
0
Пожалуйста, авторизируйтесь, чтобы скачать архив с файлами урока