| PHP Ръководство | ||
|---|---|---|
| Предишна страница | Глава 19. Класове и обекти (PHP 5) | Следваща страница |
PHP 5 позволява на разработчиците да декларират конструктори на класовете. Класове, които имат метод-конструктор, извикват този метод при всяко създаване на нов обект, така че той е много подходящ за извършване на инициализации, от които обектът се нуждае преди да бъде използван.
Забележка: Конструкторите на родителските класове не се извикват автоматично, ако в даден дъщерен клас е дефиниран конструктор. За да се изпълни контрукторът на родителския клас, е необходимо да се извика parent::__construct() в тялото на конструктора на дъщерния клас.
Поради обратната съвместимост, ако PHP 5 не може да намери в даден клас метод __construct(), той ще потърси конструктор дефиниран по начина, по който се дефинира конструктор в по-старите версии, т.е. чрез функция с името на самия клас. На практика, това означава, че може да възникнат проблеми при съвместимостта, единствено, ако класа е имал метод __construct(), който е имал друг смисъл.
В PHP 5 е въведен деструкторен метод, по подобие на другите обектно-ориентирани езици, като C++. Деструкторът ще се извика в момента, в който обектът бъде унищожен.
Също както при конструкторите и тук деструкторът на родителския клас няма да бъде извикан автоматично. За да се изпълни деструкторът на родителския клас е необходимо изрично да се извика parent::__destruct() в тялото на деструктора.
Забележка: Деструкторите се извикват по време на спирането на скрипта, при което HTTP хедърите са изпратени. Работната директория по време на процеса на спирането на скрипта може да бъдат различна при някои SAPI-та (като например Apache).
Забележка: Опитът да се хвърли изключение в тялото на деструктор (извикан по време на приключване на работа на скрипта) ще предизвика фатална грешка.
| Предишна страница | Начало | Следваща страница |
| Автоматично-зареждащи се обекти | Начало на раздела | Видимост на полета |