Pergunta

Se eu tiver uma classe base que contém um var de forma estática, então defini este Var Estático e, em seguida, ter uma classe que estende a classe base, a classe estendida reterá o valor do Var Estático que já definia classe base?

Foi útil?

Solução

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top