Единое имя конструкторов
PHP5 позволяет определить метод-конструктор класса. Классы, имеющие конструктор, вызывают его для каждого создаваемого объекта. Обычно конструкторы используются для присваивания переменным-элементам класса начальных значений, необходимых до использования объекта.
В PHP4 конструктором явзяется метод, который называется так же, как сам класс. Так как часто необходимо вызывать конструктор базового класса из класса производного, такой принцип именования конструкторов затрудняет работу со сложной иерархией классов. Если базовый класс изменен, приходится также менять имя вызываемого конструктора базового класса в коде производного класса.
В PHP5 введен стандартный способ объявления конструктора класса. Конструктором в PHP5 является метод с именем __construct().
Пример:
class BaseClass {
function __construct() {
print "В конструкторе базового класса BaseClass\n";
}
}
class SubClass extends BaseClass {
function __construct() {
parent::__construct();
print "В конструкторе производного класса SubClass\n";
}
}
$obj = new BaseClass();
$obj = new SubClass();
?>
Для обратной совместимости, предусмотрено следующее: если PHP5 не находит функцию __construct() в определении данного класса, используется старый стиль именования конструкторов. Таким образом, единственный случай несовместимости при переходе на PHP5 - присутствие в объявлении класса метода с именем __construct().
