Mailinglisten-Archive |
Hallo, Am Dienstag, 11. Dezember 2001 um 20:13 schrieb Jochen Metzger: > bei auruf: > $name="hans"; > peter($name); > Bei peter($name) wird eine Kopie der Variable $name angelegt und an die > function übergeben. > Anders bei der Referenz > z.B. peter(&$name) > hier wird nur eine Referenz (ein Verweis) auf die Variable angelegt, d.h. > die Variable wird nicht kopiert, sondern es wird der function nur übergeben, > wo im Speicher sie die Variable finden kann. > Das spart Speicher und kann (glaube ich zumindest) auch zugunsten der > Performance gehen. Ich kenne das als Adressoperator. Nachteil bei der Sache ist, dass die Variablen direkt von der Funktion vergewaltigt werden, wenn man also einmal einen neuen Wert aus dem Ausgangswert berechnen will, diesen aber behalten möchte, ist davon abzuraten. Ich denke es ist auch eher deswegen eingeführt, und nicht um speicher zu sparen. z.B. bei trim() spart man sich etwas schreibarbeit: $nils = trim($nils); entspricht dann trim(&$nils); Ich denke im übrigen nicht, dass damit viel speicher gespart werden kann, da - hoffe ich jedenfalls - für die Variablen einer Funktion allozierter Speicher nach Ausführung der selben wieder freigegeben wird (ausser bei static). Oder so. Demnach würde dieser Vorteil nur sekundenbruchteile ausgenutzt, und dass in einer tausendstelsekunde viele konkurrierende Zugriffe erfolgen wage ich zu bezweifeln (wenn ich mich irre, bitte nicht mehr auf den Kopf zielen, ok?). mit freundlichen Grüßen, Nils Meyer <mailto:meyer_(at)_wmc24.de> -- Nils Meyer . Eichenweg 7 . 21745 Hemmoor t: +49 (0)4771 68 98 80 | http://www.nmeyer.com f: +49 (0)4771 68 98 27 | http://www.clickad24.de m: +49 (0)174 20 34 08 5 |
php::bar PHP Wiki - Listenarchive