Mailinglisten-Archive |
Hallo Matthias, Matthias Stierli wrote: >>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. Also, d.h. nur die Methoden mit dem gleichen Namen. Siehe dieses Beispiel: ======= <?php class test_static { var $res; function test_static ($number) { static $result=0; $result += $number; $this->res= $result; } function other_static($number) { static $result=0; $result += $number; $this->res= $result; } } $a = new test_static (7); $a->test_static(3); echo $a->res; //Ergebnis 10 echo "<br>"; $b = new test_static (0); $b->other_static (3); echo $b->res; //Ergebnis 3 ?> ====== static $result aus test_static ist etwas anderes als static $result aus other_static! Das kann schon sinnvoll sein, wenn man z.B. mehrere $counter hat. > 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. In PHP4 kannst Du übrigens gar keine static var definieren. (In PHP 5 habe ich das Verhalten noch nicht getestet.) Viele Grüße Peter
php::bar PHP Wiki - Listenarchive