我有兩個代碼片段(關於static
關鍵字),我希望他們有相同的輸出,但實際上輸出是不同的。PHP的靜態屬性
問題是爲什麼?
片段1
class base
{
public static $var = 1;
}
class sub extends base
{
public static $var = 2;
}
echo base::$var; // Outputs 1
片段2
class base2
{
public static $var2 = 1;
}
class sub2 extends base2
{
}
sub2::$var2 = 2;
echo base2::$var2; // Outputs 2
感謝小費,剛剛更新 – nut 2013-02-18 05:30:10
我懷疑你是混淆了'const'的結果。在php中,'static'定義了一個獨立於實例的屬性。但它仍然可以改變。 – datasage 2013-02-18 05:31:15
@ user1970939,你究竟想要完成什麼?輸出是不同的,因爲你刪除了'public static $ var = 2;'。但你知道。那麼真正的問題是什麼? – Matthew 2013-02-18 05:47:48