Возможный дубликат:
для чего используется функция __construct?
есть ли какая-либо разница между функцией __construct и функцией с тем же именем, что и класс?
class foo { function foo ($something){ echo "I see ".$something." argument"; } } class bar { function __construct ($something){ echo "<br /> I see ".$something." argument again"; } } $foo = new foo("foo"); $bar = new bar("bar");
Этот метод называется способом PHP4 для создания конструктора.
Для обратной совместимости, если PHP 5 не может найти функцию __construct () для данного класса, он будет искать функцию конструктора старого стиля по имени класса . Фактически это означает, что единственным случаем, который имел бы проблемы с совместимостью, является то, что у класса был метод с именем __construct (), который использовался для различной семантики.
Начиная с PHP 5.3.3, методы с тем же именем, что и последний элемент имени пространства имен, больше не будут рассматриваться как конструктор. Это изменение не влияет на классы, не содержащие имен.
Функция конструктора, названная так же, как и класс, является функцией обратной совместимости для PHP4. Он не будет работать с классами с именами, начиная с PHP 5.3.3
Если присутствуют функции __construct
и 'class-named functions are present, then the
__construct`, используется как конструктор.
Разница в том, что PHP-версия 5.3.3 и выше будет обрабатывать function foo()
как обычный метод, а не конструктор. Предыдущие версии будут рассматривать его как конструктор.
Разница заключается в том, что вызов конструктора с тем же именем класса устарел.
Первый – это старый «php4» стиль. Это в основном то же, что и __construct
.