Mailinglisten-Archive |
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