1

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

4

1 回答 1

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
于 2011-02-20T19:46:38.427 回答