私有静态方法与静态方法
我理解这意味着不需要实例化对象即可使该属性/方法可用。我也理解这如何适用于私有属性和方法以及公共方法。我试图理解的是静态私有函数给你带来什么。例如: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()
打开严格的错误报告后,我确实收到警告,说我应该使静态化,尽管它仍然允许我运行代码。我做了一些研究,似乎其他语言(Java)会迫使你在被静态公共方法调用时将私有方法声明为静态。看起来PHP可以让你逃脱这个。有没有办法强迫它抛出错误而不执行?getBeerType()