需要一些帮助来了解我的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时,我得到&#39;缓存为&#39;显示,这是一个惊喜。我从未打电话给$cache->cache('', '');
调用方法的是什么?
根据Blake的回答,由于方法名称(稍微)匹配类名,因此在实例化时调用它。对于Java开发人员来说,这肯定是一个惊喜。
答案 0 :(得分:1)
这是使用已弃用的PHP功能来充当__contruct()
方法。在旧版本的PHP中(在7中删除)如果您有一个名为Foo
的类和一个名为foo()
的函数,那么您将其称为构造函数。
简而言之,您可以通过实例化该类来调用它。如果您将cache()
方法更改为makeCache()
,我打赌它会消失。
另一个解决方案是拥有一个空的构造函数,感谢JimL。
public function __construct() {
}