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 を使用すると、これを回避できるように見えます。エラーをスローして実行しないようにする方法はありますか?