Я столкнулся с этим очень странным поведением. Следующий кодПочему этот метод называется без запроса?
class TestClass {
function testClass() {
echo "Don't show me!";
}
}
$testing = new TestClass;
выполняет свой метод testClass
без его называют! Однако testClass
не будет работать, если переименовано во что-нибудь еще, как testClass1
. Есть ли скрытая «магия PHP» за этим поведением?
EDIT. В конце я вижу, что этот вопрос тривиально для ниндзя, выросших с помощью PHP. Как недавний новичок в PHP, я научился использовать __construct
в качестве конструктора. С этим «реликвийным поведением» осторожно удалены из современных уроков. Я так рад, что люди поняли, как это ужасно, меняя имя класса и забывая изменить конструктор - какой кошмар!
Метод с именем имени как класса, который он отличается от, будет считаться конструктором класса. –
Этот метод 'testClass()' называется тем же самым, что и сам класс. Он будет работать подобно методу '__construct()'. Обычно лучше использовать '__construct()', хотя это более понятно для чтения. – Daniel
Если вы не хотите, чтобы он был вызван, добавьте еще один метод и назовите его __construct, тогда класс будет использовать __construct как конструктор класса вместо метода с тем же именем, что и класс. – Ultimater