Я удивлен тем, почему конструктор вызывается, когда у нас есть другое имя класса и конструктора. Имя конструктора начинается с небольшого «r»?
class Registration{ function registration(){ echo "Constructor is called."; } } $obj = new Registration(); //$obj->registration();
Выходы: вызывается конструктор.
Модификация: зависит ли это поведение от случайного ввода от версий php, которые мы используем?
php нечувствителен к регистру (иногда). Было бы также работать следующее:
CLASS REGISTRATION { FUNCTION reGISTration(){ ECHO "constructor is called."; } } $obj = NEW Registration();
В php все имена функций нечувствительны к регистру .
Кстати, вы должны переключиться на новый стиль __construct
. Конструкторы как функции с именем класса являются историческим артефактом.
Я думаю, что оба названия одинаковы.
потому что, когда вы пытаетесь объявить класс с именем «регистрация» на той же странице, он даст вам сообщение об ошибке, указывающее, что вы не можете объявить класс.
в этом случае он не чувствителен к регистру
PHP нечувствителен к регистру, но это не объясняет поведение.
Это связано с тем, что функция с тем же именем класса рассматривается как конструктор.
См. http://php.net/manual/en/language.oop5.decon.php – Пример 2
Так что это верно для функций любого имени, EG:
class Dog{ function dog(){ echo "Constructor is called."; } } $obj = new Dog(); $obj->dog();