如果我在PHP中扩展一个静态类,父类引用;赛尔夫::“;,这是指扩展类中的自我吗?

如果我在PHP中扩展一个静态类,父类引用;赛尔夫::“;,这是指扩展类中的自我吗?,php,class,static,extends,Php,Class,Static,Extends,如果我在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} }

如果我在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}
}
很容易测试:

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'
。。。希望有帮助:)

很容易测试:

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'
。。。希望有帮助:)

是在PHP5.3中引入的,它允许您控制此行为。

是在PHP5.3中引入的,它允许您控制此行为