2010-09-16 44 views
1

如果我在PHP中擴展一個靜態類,並且父類引用「self ::」,這是否將引用擴展類中的self?如果我在PHP中擴展靜態類,並且父類引用「self ::」,這是否將引用擴展類中的self?

因此,例如

<?php 
Class A 
{ 
    static $var 
    public static function guess(){self::$var = rand(); return $var} 
}   

Class B extends Class A 
{ 
    public static function getVar(){return self::$var} 
} 

如果我跑 B ::猜(); 然後B :: getVar();

是Var存儲在A :: $ var或B :: $ var中的值嗎?

謝謝。

回答

3

這很容易測試:

class ClassA { 
    public static function test(){ self::getVar(); } 
    public static function getVar(){ echo 'A'; } 
}   

class ClassB extends ClassA { 
    public static function getVar(){ echo 'B'; } 
} 

ClassA::test(); // prints 'A' 

ClassB::test(); // also prints 'A' 

...希望幫助:)