Уроки PHP – Конструкторы и Деструкторы

PHP – это один из самых наиболее широко используемых языков программирования. У него большое сообщество преданных разработчиков, и на PHP построено много популярных фреймворков. Одними из самых ярких примеров можно назвать Magento и WordPress. Если вы хотите стать успешным программистом – этот язык подойдет вам для изучения. А наши уроки по PHP могут вам в этом помочь.

 

 

В предыдущем уроке мы рассмотрели Классы PHP и немного введения в ООП. Мы сделали обзор экземпляров класса, ключевого слова $this, рассмотрели наследование и видимость классов. Однако это еще не все. Есть еще информация, которая поможет вам лучше понять PHP. И в этом уроке вы ее получите.

 

 

Конструктор классов

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

Благодаря этой возможности метод __construct() часто используется разработчиками PHP для вызова всего того, что может понадобиться объекту перед его использованием. Метод также поддерживает параметры, и если они вам нужны, вы можете включить их в конструктор. Это позволит объекту принимать значения при его создании.

Учтите, что вы не можете использовать несколько методов __construct() с разным набором параметров. Если вы хотите, чтобы какой-то объект вел себя по-разному, например, в зависимости от параметров, вы должны обрабатывать эту логику внутри одного и того же метода __construct().



А теперь рассмотрим простой пример. Создадим новый класс под названием Chelovek. У него будут некоторые открытые свойства и метод конструктора. Метод __construct() примет эти свойства в качестве параметров, инициализирует их и выведет простое сообщение. Затем мы будем использовать этот класс для создания экземпляра нового объекта с именем $ivan. Как вы увидите, сообщение с указанным методом __construct() сразу появится.

<?php  // класс Chelovek с базовым примером метода __construct()  class Chelovek {   public $vozrast;   public $imya;   public function __construct($imya, $vozrast) {    $this->vozrast = $vozrast;    $this->imya = $imya;    echo "Создан новый экземпляр класса Chelovek";   }  }  $ivan = new Chelovek("Иван", 25);  ?>  

 

 

Свойства метода __construct() по умолчанию

Представьте, что у вас есть свойство, которое должно быть по умолчанию для класса Chelovek. Допустим, что это возраст совершеннолетия. Если не указано другое – будет приниматься это свойство по умолчанию. Как это может выглядеть в PHP?

<?php  class Chelovek {   public $vozrast;   // в методе __construct устанавливаем возраст по умолчанию   public function __construct( $vozrast = 18 ) {    $this->vozrast = $vozrast;   }  }  $stepan = new Chelovek; // у Степана будет дефолтный возраст – 18  $ivan = new Chelovek( 25 ); // а здесь мы переписываем дефолтное значение  ?>  

 

 

 

Класс деструктор

Помимо конструктора класса, существует также деструктор класса. Это деструкторный метод __destruct(). Этот метод вызывается автоматически при уничтожении объекта. Вы также можете явно вызвать метод деструктора. Для этого вы можете использовать функцию unset(). Хорошее применение деструкторам – выполнение определенных задач по завершении жизненного цикла объекта, таких как освобождение ресурсов, запись файлов лога, закрытие соединения с базой данных и т.д.

<?php  // класс Chelovek с базовым примером метода __destruct()  class Chelovek {   public function __destruct() {    echo "Экземпляр класса Chelovek был уничтожен";   }  }  $ivan = new Chelovek("Иван", 25);  // или  unset($ivan);  ?>