😎 » PHP - FAQ » Основы PHP8 » Конструктор и деструктор в PHP
271 0  

Конструктор и деструктор в PHP

Конструктор в PHP это функция через которую создать много однотипных объектов.

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

PHP предоставляет магический метод __construct() (конструктор), который вызывается автоматически всякий раз, когда инстанцируется новый объект.

<?php
class Person {
    public function __construct() {
        echo "Object created";
    }
}
$p = new Person();
?>

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

<?php
class Person {
    public $name;
    public $age;
    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
}
$p = new Person("David", 42);
echo $p->name;
?>

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


Вы не можете записать несколько методов __construct() с различным числом параметров. Иное поведение конструктора должно быть осуществлено в пределах одного метода __construct().


Деструктор класса в PHP

Существует похожий на конструктор класса магический метод __destruct() (деструктор), который автоматически вызывается при удалении объекта.

<?php
class Person {
    public function __destruct() {
        echo "Object destroyed";
    }
}
$p = new Person();
?>

*скрипт выше создает новый объект Person. Когда скрипт заканчивается, объект автоматически удаляется, что вызывает деструктор и выводит сообщение "Object destroyed".

Чтобы напрямую активировать деструктор, вы можете удалить объект при помощи функции unset() в запросе, подобном unset($p).


Деструкторы полезны для выполнения определенных задач, когда объект заканчивает свой жизненный цикл. Например, освобождение ресурсов, написание файлов журналов, закрытие соединения с базой данных и так далее.

PHP освобождает все ресурсы, когда скрипт заканчивает свое выполнение.




Залишити свій коментар:

Досвід у веброзробці:

2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2009
2023