О компании
Разработка сайтов
Продвижение сайтов
Исследования и аудит
Цены
Наши заказчики
Статьи
+7 (812) 710-32-88
http://
e-mail:
дополнительная информация:

ICQ консультация268-126-780
Вам обязательно ответят!






Конструкторы и деструкторы

Constructor

PHP 5 позволяет объявлять методы-конструкторы. Классы, в которых объявлен метод-констуктор, будут вызывать этот метод при каждом создании нового объекта, так что это может оказаться полезным, чтобы, например, инициализировать какое-либо состояние объекта перед его использованием.

Замечание: Конструкторы в классах-родителях не вызываются автоматически. Чтобы вызвать конструктор, объявленный в родительском классе, следует обратиться к методу parent::__construct().

Пример #1 Использование унифицированных конструкторов

<?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();
?>

Если PHP 5 не может обнаружить объявленный метод __construct(), вызов конструктора произойдет по прежней схеме, через обращение к методу, имя которого соответствует имени класса. Может возникнуть только одна проблема совместимости старого кода, если в нём присутствуют классы с методами __construct().

Деструкторы

PHP 5 предоставляет концепцию деструкторов, сходную с теми, что применяются в других ОО языках, таких, как Java: когда освобождается последняя ссылка на объект, перед высвобождением памяти, занимаемой этим объектом, вызывается метод __destruct(), не принимающий параметров.

Пример #2 Пример использования деструктора

<?php
class MyDestructableClass {
    function 
__construct() {
        print 
"Конструктор\n";
        
$this->name "MyDestructableClass";
    }

    function 
__destruct() {
        print 
"Уничтожается " $this->name "\n";
    }
}

$obj = new MyDestructableClass();
?>

Как и в случае с конструкторами, деструкторы, объявленные в родительском классе, не будут вызваны автоматически. Для вызова деструктора, объявленном в классе-родителе, следует обратиться к методу parent::__destruct().



Copyright (C) 2003 Urlixтел: (812) 710-32-88 mailto: contact@urlix.ru

Наш офис находится по адресу: Санкт-Петербург, ул. Разъезжая, д.20, офис 41

Rambler's Top100