phpbar.de logo

Mailinglisten-Archive

[php] static in Methoden (PHP4) - Ist das so gedacht?

[php] static in Methoden (PHP4) - Ist das so gedacht?

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Die Jan 17 12:52:24 CET 2006


Hallo Peter,

Peter Bieling schrieb:
> Hallo Lutz,
>
> Lutz Zetzsche wrote:
>
>> Wenn ich geschrieben habe, daß Variablen ausschließlich im Rumpf der
>> Klasse,
>> nicht aber in Funktionen deklariert werden können, dann meine ich damit
>> Klassen- und Objektattribute, die mit public/protected/private und
>> static
>> deklariert werden.
>
> danke für Deinen Java-Test! - Wie gesagt und gezeigt: in C++ ist es
> möglich, static-Variablen innerhalb der Funktionen zu deklarieren.
> Wie jetzt noch mal getestet:
> static int counter int Funktion A kann dann einen anderen Wert haben als
> static int counter in Funktion B. (Was ja auch normal sein sollte.)
> Im Ergebnis entspricht das dann genau dem Verhalten in PHP4, wie zuletzt
> von mir gepostet.
>
> Wie Du festgestellt hast, ist so etwas in Java nicht möglich. Vielleicht
> auch gut so ...

ich denke, es wird deutlich, daß es unabhängig von anerkannten Prinzipen,
auch gewisse Spielräume gibt, wie eine Programmiersprache Sprachelemente
implementieren kann.

Wir haben jetzt PHP, C++ und Java ausprobiert und haben festgestellt, daß
es  Unterschiede dahingehend gibt, wo eine static-Variable deklariert
werden darf und welchen Geltungsbereich (global, Klasse, Funktion) sie
hat. Allen von uns überprüften Sprachen ist aber gemeinsam, daß eine
static-Variable sich unabhängig davon gleich verhält.

Das anerkannte Prinzip bei static ist also, daß eine solche Variable ihren
Wert über Funktionsaufrufe bzw. Objektinstanzen hinweg behält. Dieses
Prinzip setzen alle drei Sprachen um.

Sehr interessant wäre, wenn jemand noch einen Test in Python beisteuern
könnte. :-) Wäre nett, wenn dazu auch noch ein Beitrag käme. :-)


Viele Grüße
Lutz



php::bar PHP Wiki   -   Listenarchive