扩展类是否继承静态var值(PHP)?

时间:2011-02-20 19:43:41

标签: php static extending-classes

如果我有一个包含静态var的基类,那么我设置这个静态var,然后有一个扩展基类的类,扩展类是否会保留我已经设置的静态var的值基类?

1 个答案:

答案 0 :(得分:2)

是的,虽然它们是不同的变量,但两个类中的静态变量都在同一个参考集中。

您可以通过使用引用分配(=&)或在扩展类中重新声明它来中断此引用集:

class base {
    public static $var;
}
class extended extends base {}

extended::$var = 8; // base::$var == 8
$t = 6;
extended::$var =& $t; // base::$var == 8; extended::$var == 6

class base {
    public static $var;
}
class extended extends base {
    public static $var;
}

extended::$var = 8; // base::$var == null; extended::$var == 8