0
它有什麼含義嗎?靜態::關於私人會員
public static function a(){
static::_b();
}
private static function _b(){
}
靜態這裏是一樣在任何情況下的自我,因爲你不能覆蓋子類中的私有函數,對不對?
它有什麼含義嗎?靜態::關於私人會員
public static function a(){
static::_b();
}
private static function _b(){
}
靜態這裏是一樣在任何情況下的自我,因爲你不能覆蓋子類中的私有函數,對不對?
正如Germann Arlington在評論中所說。一個子類可以自己實現_b() - 即使具有不同的可見性。
<?php
class Foo {
public static function a() { static::_b(); }
private static function _b() { echo 'Foo'; }
}
class FooEx extends Foo {
public static function _b() { echo 'FooEx'; }
}
FooEx::a();
打印FooEx
因爲一些奇怪的原因,我一直認爲你不能重寫(或隱藏)任何靜態方法。每天都是學校的一天。 +1 – DaveRandom
1)不能覆蓋靜態方法/函數(它是隱藏,不重寫)。 我不在你的陳述中與你「靜態在這裏和自己一樣」,你是什麼意思?對我來說,你的'static :: _ b();'看起來像一個隱藏外部定義的函數_b()' –