Класи, у яких оголошено метод-констуктор, будуть викликати цей метод при кожному створення нового об'єкта, так що це може виявитися корисним, для того, щоб ініціалізувати стан об'єкту перед його використанням. Конструктор, який раніше збігався з назвою класу, тепер необхідно оголошувати як __construct (), що дозволить легше переміщати класи в ієрархіях. Конструктори в класах-батьків не викликаються автоматично. Щоб викликати конструктор, оголошений в батьківському класі, слід звернутися до методуparent::__construct().
<?php
class BaseClass {
function __construct() {
print "Конструктор класу BaseClass\n";
}
}
class SubClass extends BaseClass {
function __construct() {
parent::__construct();
print "Конструктор класу SubClass\n";
}
}
$obj = new BaseClass();
$obj = new SubClass();
?>
Деструктори
Перед звільненням пам'яті, займаної об'єктом, викликається метод __destruct (), яка не приймає параметрів. Він працює як дзеркальне відображення __construct (). Цей метод корисний для виконання процедури очищення.
<?php
class MyDestructableClass {
function __construct() {
print "Конструктор\n";
$this->name = "MyDestructableClass";
}
function __destruct() {
print "Знищується " . $this->name . "\n";
}
}
$obj = new MyDestructableClass();
?>