如果我在PHP中扩展一个静态类,父类引用;赛尔夫::“;,这是指扩展类中的自我吗?
如果我在PHP中扩展一个静态类,并且父类引用“self::”,这会引用扩展类中的self吗 比如说如果我在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
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中引入的,它允许您控制此行为