Что такое методы __construct() и __destruct() в PHP?

Опубликовано: 25 Сентября, 2022

Конструктор — это концепция ООП в PHP. Это метод с тем же именем, что и имя класса. Он определен внутри класса и используется для автоматического вызова при создании объекта.
PHP4 предоставляет метод конструктора, тогда как PHP5 предоставляет магический метод __construct и __destruct. Этот метод вызывается автоматически при создании или уничтожении объекта. Эта функция всегда начинается с двух знаков подчеркивания.

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

Характеристики:

  • __construct — это публичный магический метод.
  • __construct — это метод, который должен быть общедоступным.
  • Метод __construct может принимать один и более аргументов.
  • Метод __construct используется для создания объекта.
  • Метод __construct может вызывать метод или функции класса
  • Метод __construct также может вызывать конструкторы других классов.

Конструктор инициализирует свойства класса во время создания объекта. Метод __construct() будет вызываться только один раз при создании объекта класса.

Синтаксис:

$object_name= new class_name (argument value);

Пример:

$subject=new computer(“English”);

Синтаксис:

function __construct() {
    // Initialize the object properties
}

Подход:

  • Конструктор по умолчанию: по умолчанию метод __construct() не имеет параметров. Значения, переданные конструктору по умолчанию, являются значениями по умолчанию.
  • Параметризованный конструктор: В параметризованном конструкторе метод __construct() принимает один и более параметров. Вы можете указать различные значения параметров.
  • Конструктор копирования: в конструкторе копирования метод __construct() принимает в качестве параметра адрес других объектов.

Конструктор по умолчанию: в конструкторе по умолчанию метод __construct() не имеет параметров. Значения, переданные конструктору по умолчанию, являются значениями по умолчанию.

Пример: возьмем пример класса «студент», который будет отображать простое сообщение для этого класса. Мы определим конструктор без параметра.

Конструктор без параметра:

Выход:

This is __construct without parameter
Welcome To GeeksforGeek

Конструктор с параметром:

Пример 2: Возьмем еще один пример класса «студент», у которого есть два свойства « имя » и « фамилия ». Для этого класса мы определим конструктор с параметром, который будет инициализировать свойства класса при создании объекта.

Выход:

My name is john
Surname is biber

Деструктор PHP: Метод деструктора PHP используется для уничтожения объектов или освобождения их выделенной памяти. Деструктор вызывается автоматически при создании объекта. Обычно он вызывается в конце скрипта. Метод деструктора не принимает никаких аргументов, деструктор не возвращает никаких типов данных. Весь этот процесс обрабатывается сборщиком мусора.

Характеристики:

  • Метод __destruct() не принимает никаких параметров.
  • Метод __destruct() не будет иметь возвращаемого типа.
  • Этот метод работает прямо противоположно методу __construct в PHP.
  • __destruct вызывается автоматически в конце скрипта.
  • Метод __destruct() начинается с двух знаков подчеркивания (__).
  • Он используется для деинициализации существующих объектов.

Синтаксис:

function __destruct() {
    // Destroy objects or release memory.
}

Пример:

Выход:

This is a constructer
Object is initialized in constructer
This is destruct
Object is destroyed in destructer

Пример: Теперь давайте возьмем пример ученика «класса», у которого есть три свойства: «имя», «фамилия» и «любимый веб-сайт». Для этого класса мы определим конструктор с параметром, а деструктор уничтожит инициализированный объект.

Выход:

My name is John
Surname is Biber
My favorite website is Geeksforgeek
Succesfully object Destroyed

Пример: давайте создадим класс «MyClass». В конструкторе мы определим новое свойство класса и уничтожим их в деструкторе.

Выход:

You are in constructor
You are in destructor
Just Destroyed MyClass Object

Вывод: в реальном мире конструкторы и деструкты очень полезны, поскольку они занимают место в памяти. Они позволяют повторно использовать код. В целом они очень полезны.