Класове и обекти (PHP 4)
PHP Manual

Конструктори

Конструкторите са функции на класа, които се извикват автоматично при създаване на нова инстанция на съответния клас с ключовата дума new. Дадена функция е конструктор, когато името и съвпада с името на класа. Ако даден клас няма конструктор, то ще се бъде извикан конструктора на базовия му клас (ако съществува).

<?php
class Auto_Cart extends Cart {
    function 
Auto_Cart() {
        
$this->add_item("10"1);
    }
}
?>

Горният код дефинира клас Auto_Cart, който представлява класа Cart плюс конструктор, който инициализира пазарската количка с артикул номер "10" всеки път, когато се създаде нов обект от тип Auto_Cart с ключовата дума "new". Конструкторите могат да приемат аргументи и тези аргументи могат да бъдат с подразбиращи се стойности, което ги прави още по-полезни. За да е възможно използването на класа без параметри, всички параметри на конструктора трябва да бъдат дефинирани със стойности по подразбиране.

<?php
class Constructor_Cart extends Cart {
    function 
Constructor_Cart($item "10"$num 1) {
        
$this->add_item ($item$num);
    }
}
 
// Пазаруваме едни и същи стари неща...
$default_cart = new Constructor_Cart;
 
// Истинско пазаруване...
$different_cart = new Constructor_Cart("20"17);
?>

Можете да използвате оператора @ за да подтиснете грешките които възникват в тялото на конструктора, т.е @new.

<?php
class A
{
    function 
A()
    {
        echo 
"Аз съм конструкторът на клас A.<br />\n";
    }

    function 
B()
    {
        echo 
"Аз съм нормална функция B в клас A.<br />\n";
        echo 
"Аз не съм конструктор на клас A.<br />\n";
    }
}

class 
extends A
{
}

// Това ще предизвика извикването на B() като конструктор
$b = new B;
?>

Функция B() в клас A ще се приеме като конструктор в клас B, въпреки че не е проектирана да бъде такава. В PHP 4 няма значение, дали функцията е дефинирана в клас B или е наследена от родителски клас.

Внимание

В PHP 4 конструктора на базовия клас не се извиква автоматично от конструктора на производния клас. Отговорността за извикването на този конструктор, където е необходимо нагоре по йерархията на класовете, е на програмиста.

Деструкторите са функции, които се извикват автоматично, когато даден обект се унищожи, било то чрез unset() или просто като се излезе от областта на действие на обекта. В PHP не съществуват деструктори. Можете да използвате функцията register_shutdown_function(), за да симулирате голяма част от действието на деструкторите.


Класове и обекти (PHP 4)
PHP Manual