В этой статье представлен принцип и использование PHP-конструктора и деструктора. Подробности заключаются в следующем:
Конструкторы
__construct ([ смешанные $args [, $… ]] ): пустота
PHP 5 позволяет разработчикам определять метод как конструктор в классе. Классы с конструкторами вызывают этот метод каждый раз, когда они создают новый объект, поэтому идеально выполнить некоторую инициализацию перед использованием объекта.
Примечание : если его подкласс определен, его подкласс не будет вызван. Чтобы выполнить конструктор родительского класса, вам нужно вызвать parent: в конструкторе подкласса: construct() 。 Если подкласс не определяет конструктор, он наследуется от родительского класса как обычный метод класса (если он не определен как частный).
В примере № 1 используется новый стандартный конструктор
Для обратной совместимости, если PHP 5 не найден в классе__ Если функция construct() не наследует ее от родительского класса, она попытается найти старомодный конструктор, то есть функцию с тем же именем, что и класс. Таким образом, единственная проблема совместимости заключается в том, что уже существует класс с именем__, когда метод construct () используется для других целей.
В отличие от других методов, когда__ Construct() связан с родительским классом__ PHP не генерирует e, когда construct () переопределяет метод с другими параметрами.Строгое сообщение об ошибке.
Начиная с PHP 5.3.3, методы с тем же именем, что и имя класса, больше не используются в качестве конструкторов в пространстве имен. Это изменение не влияет на классы, которые не находятся в пространстве имен.
Пример № 2 Конструкторы в классах с пространством имен
Деструктор
__разрушение ( пустота ): пустота
PHP 5 вводит понятие деструктора, которое аналогично другим объектно-ориентированным языкам, таким как C + +. Деструкторы выполняются, когда все ссылки на объект удаляются или когда объект явно уничтожается.
Пример # – 3 пример деструктора
name = "MyDestructableClass";
}
function __destruct() {
print "Destroying " . $this->name . "\n";
}
}
$obj = new MyDestructableClass();
Как и конструктор, деструктор родительского класса не вызывается движком в темноте. Чтобы выполнить деструктор родительского класса, необходимо явно вызвать parent: в теле деструктора дочернего класса__ destruct(). Кроме того, как и в случае с конструкторами, подклассы, которые сами не определяют деструкторы, наследуются от своих родителей.
Деструктор вызывается даже тогда, когда вы используете exit() для завершения выполнения сценария. Вызов exit () в деструкторе приведет к прерыванию выполнения оставшихся операций закрытия.
Примечание:
Деструктор вызывается, когда скрипт закрыт, и все HTTP-заголовки отправляются. Рабочий каталог при закрытии скрипта может отличаться от каталога в SAPI (например, APACHE).
Примечание:
Попытка создать исключение в деструкторе (вызываемом в конце сценария) может привести к фатальной ошибке.
Подробнее о содержании, связанном с PHP, заинтересованные читатели могут ознакомиться со специальными разделами этого веб-сайта: “Вводный учебник по объектно-ориентированному программированию PHP”, “Энциклопедия навыков работы с массивами PHP”, “Вводный учебник по базовой грамматике PHP”, “Краткое описание операций PHP и использования операторов”, “Краткое описание использования строк PHP”, “Вводный учебник по работе с базой данных PHP + MySQL” и “Общая работа с базой данных PHP”. Краткое изложение навыков письма
Я надеюсь, что эта статья будет полезна для программирования на PHP.