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

Как выбрать мастера для перетяжки мебели?

Выбор мастера для ремонта и перетяжки мебели — задача, которая требует вдумчивого подхода. Ведь от…

2 дня ago

Что лучше выбрать для хостинга: сервер VPS Windows или VPS Linux?

Выбор идеального хостинга под свой сайт может быть довольно запутанным делом, особенно когда существует так…

1 неделя ago

Лоуренс Питер

Чтобы избегать ошибок, нужно набираться опыта; чтобы набираться опыта, надо делать ошибки Лоуренс Питер  

2 недели ago

Что такое Черное СЕО (Black Hat SEO) — вся нужная информация

Краткое определение Черного SEO Черное СЕО (или Черная оптимизация) — это любая практика, целью которой…

2 недели ago

Права категории C: кому они нужны и как их получить?

Получение водительских прав категории C открывает двери к профессиональной деятельности, связанной с управлением грузовыми автомобилями.…

3 недели ago

Уилл Смит

Хорошие люди принесут вам счастье, плохие люди наградят вас опытом, худшие — дадут вам урок,…

3 недели ago