Класи, у яких оголошено метод-констуктор, будуть викликати цей метод при кожному створення нового об'єкта, так що це може виявитися корисним, для того, щоб ініціалізувати стан об'єкту перед його використанням. Конструктор, який раніше збігався з назвою класу, тепер необхідно оголошувати як __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();
 ?>