Нужна помощь в понимании того, что происходит в моем PHP-коде.Почему метод класса PHP вызван при создании экземпляра?
index.php
include("cache.php");
$cache = new Cache();
cache.php
class Cache {
private static $URL_CACHE;
public function cache($url, $entityId) {
echo '<br>caching '.$url.' as '.$entityId;
}
Когда я прошу index.php, я получаю 'кэширование как' отображается, что это сюрприз. Я никогда не звонил $cache->cache('', '');
Что вы называете методом?
Согласно ответу Блейка, поскольку имя метода совпадает (несколько) с именем класса, оно вызывается при создании экземпляра. Для разработчиков Java это, безусловно, будет сюрпризом.
Использование устаревшей функциональности PHP для использования в качестве метода '__contruct()'. В более старых версиях PHP (Удалено в 7). Если у вас был класс с именем 'Foo' и функция с именем' foo() ', то вы бы назвали его конструктором. Короче говоря, это вызывает вас, создавая экземпляр класса. Если вы измените свой метод 'cache()' на 'makeCache()', я уверен, что он исчезнет. – Blake
@Blake вы можете положить его как aswer) –
Вправо. Изменено имя метода, и оно работает. Пожалуйста, используйте свой ответ в качестве ответа, поэтому другие не тратят время на это. – jacekn