Коварная война россии против Украины. Ориентировочные потери врага
(по состоянию на 16.04.2024)
455340
солдат
347
самолетов
325
вертолетов
7189
танков
13809
ББМ
11609
артиллерия
759
ПВО
1046
РСЗО
15563
машин
26
корабли и катера
Уроки PHP – Конструкторы и Деструкторы
Опубликовано

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

 

 

 

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *