Уроки 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);
?>

 

 

 

Recent Posts

Разница между Изображением обложки и Избранным изображением в WordPress

Визуальная привлекательность является ключевой особенностью любого сайта на ВордПрессе. Посетители чаще будут открывать ссылки, украшенные…

3 дня ago

15 классических вопросов на собеседовании, к которым следует быть готовым программисту

Любые собеседования всегда волнуют, и даже могут вызвать определенную степень нервозности. Однако, если вы будете…

5 дней ago

Артур Шопенгауэр

Изменить я этого не могу, остается извлекать из этого пользу Артур Шопенгауэр  

6 дней ago

Эрнест Хемингуэй

Если вас что-то ранит, значит, вам не все равно Эрнест Хемингуэй  

2 недели ago

Как создать собственный URL-адрес для входа в WordPress

По умолчанию после каждой установки WordPress есть три основных URL-адреса для входа в админку: {домен}/wp-admin.php,…

2 недели ago

Как отслеживать производительность фрилансера без сложного софта

Производительность – это валюта фрилансера. Когда ты работаешь сам на себя, никто не спросит: "Сколько…

2 недели ago