phpbar.de logo

Mailinglisten-Archive

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

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

Matthias Stierli mst at hayloft.ch
Mon Jan 16 14:59:27 CET 2006


Hallo Peter

> Also, mich hatte überrascht, dass sich Methoden verschiedener Objekte
> ihre static-Variablen teilen.

Da hier von "Methoden" die Rede war, überrascht mich das auch. Obwohl für
mich eine static-Variable in einer Methode sowieso keinen Sinn macht.


> wie in C++, nehme ich inzwischen an, dass das so sein soll. (Vielleicht
> weiß jemand, wie es z.B. in Java oder anderen objektorientierten
> Sprachen gelöst ist.)

Wäre interessant zu wissen, kann mich leider nicht erinnern, dass ich es
schon mal versucht hätte.


> Mein Problem war bisher, den Sinn zu finden, warum sich verschiedene
> Objekte einer Klasse die static-Variablen teilen sollten. Aber mir
> dämmert es langsam.

Was ist denn das Besondere an einer static-Variable, wenn nicht genau
dieses Verhalten?
Was soll deiner Ansicht nach static denn anderes bewirken?


> Ein theoretisches Beispiel:
> Klasse Kuehe mit den Objekten Alma, Berta, Cleo.
> Die Methode ist add_liter($liter),
> Innerhalb dieser Methode gibt es eine static $gesamtliter, zu der immer
> die $liter addiert werden. In diesem Fall werden alle Milcherträge
> sozusagen in einer gemeinsamen (Milchsee-)Variablen gesammelt.

genau, auf solche Dinge kann es abzielen.


Vielleicht habe ich es einfach ein wenig schlecht formuliert.
Ich kann verstehen, dass das Verhalten von static in einer Methode bei PHP
verwirrt.
Mich überrascht aber, dass du es seltsam findest, dass eine Eigenschaft
einer Klasse ihren Wert klassenübergreifend hat. Denn das ist meiner
Ansicht nach genau der Sinn von static bei OOP.

Gruss

Matthias



php::bar PHP Wiki   -   Listenarchive