Но сначала пара официальных заявлений:
- Некоторые из приведённых в данной статье решений воспроизводимы в PHP4, но, тем не менее, их описание присутствует и здесь для большей удобочитаемости и целостности всей статьи.
- Некоторые из описанных в данной статье особенностей в конечном релизе PHP5 могут быть изменены.
PHP5 ещё не выпущен и мне неизвестно, когда это произойдёт, но уже сейчас вы можете потестировать и изучить новые возможности языка, скачав рабочую версию PHP5 с https://snaps.php.net и установив её. По этой ссылке вы можете найти готовые для установки Windows и Linux версии PHP5. Инсталляция проходит как у любого нормального релиза PHP, так что все бегом за новой игрушкой.
Новая объектная модель
В PHP5 объектную модель основательно подлатали и добавили много новых возможностей, благодаря чему PHP5 стал "чем-то" напоминать Java. В этой части нашей статьи будет описана эта новая объектная модель и приведено несколько небольших примеров, чтобы вам обозначить исходный рубеж для ваших экспериментов.
- Конструкторы и деструкторы
- Объекты как ссылки
- Клонирование объектов
- Дескрипторы Private, Public и Protected
- Интерфейсы
- Абстрактные классы
- __call
- __set and __get
- Закрытые члены
Конструкторы и деструкторы
В PHP4 конструктор именуется так же как и сам класс, а деструкторы отсутствуют полностью.
В PHP5 конструктор класса именуется __construct, а деструктор - __destruct.
Пример 1: Конструкторы и деструкторы
<?php
class foo {
var $x;
function __construct($x) {
$this->x = $x;
}
function display() {
print($this->x);
}
function __destruct() {
print("ну, пока, до скорого");
}
}
$o1 = new foo(4);
$o1->display();
?>
Как вы видите, деструктор вызывается перед самым уничтожением класса.