我理解这static
意味着不需要实例化对象即可使该属性/方法可用。我也理解这如何适用于私有属性和方法以及公共方法。我想了解的是静态私有函数为您带来了什么。例如:
class Beer {
static private $beertype = "IPA";
private function getBeerType() {
return self::$beertype;
}
static public function BeerInfo() {
return self::getBeerType();
}
}
print Beer::BeerInfo() . "\n";
getBeerType()
只要从静态公共方法调用私有方法,它就可以在没有实例化对象的情况下正常执行。如果静态公共方法可以访问所有私有方法(静态和非静态),那么将方法声明为静态私有有什么好处?
打开严格的错误报告后,我确实收到了我应该设为getBeerType()
静态的警告,尽管它仍然允许我运行代码。我做了一些研究,似乎其他语言(Java)在被静态公共方法调用时会强制你将私有方法声明为静态。看起来PHP可以让你摆脱这个。有没有办法强制它抛出错误而不执行?