Frage

Wenn ich eine Basisklasse habe, die einen statischen VAR enthält, setze ich diesen statischen VaR ein, und dann eine Klasse, die die Basisklasse erweitert, wird die erweiterte Klasse den Wert des statischen Variums behalten, in dem ich bereits eingerichtet habedie Basisklasse?

War es hilfreich?

Lösung

Yes, although they're different variables, the static variables in both classes are in the same reference set.

You can break this reference set though, by using reference assignment (=&) or by redeclaring it in the extended class:

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top