php statische Konstanteneigenschaft

Habe ich zwei code-Schnipsel (in Bezug auf die static keyword), die ich von Ihnen erwarten, um den gleichen output, aber eigentlich sind die Ausgänge anders.

Die Frage ist, warum?

Snippet 1

class base
{
    public static $var = 1;
}

class sub extends base
{
    public static $var = 2;
}

echo base::$var; //Outputs 1

1

Snippet 2

class base2
{
    public static $var2 = 1;
}

class sub2 extends base2
{
}

sub2::$var2 = 2;
echo base2::$var2; //Outputs 2

2

danke für den Tipp, soeben aktualisiert
Ich vermute, du verwechselst das Ergebnis mit const. In php static eine Eigenschaft definiert, die unabhängig von einer Instanz. Aber es kann sich noch ändern.
was sind Sie eigentlich versucht zu erreichen? Der Ausgang ist anders, weil Sie entfernt public static $var = 2;. Aber Sie wissen, dass. Also, was ist die eigentliche Frage?
Ich denke, dass Ihr auf der Suche nach: In der Klasse sub verwenden: self::$var = 2;

InformationsquelleAutor nut | 2013-02-18

Schreibe einen Kommentar