Mailinglisten-Archive |
Am 15.04.2005 um 13:56 schrieb Sebastian Mendel: > Aron Schlesinger schrieb: > >>> if (!isset($_SESSION['obj'])) { >>> $_SESSION['obj'] = new test(); >>> $obj = &$_SESSION['obj']; >>> $obj->var = 20; >>> } >> >> Nur mal so aus Interesse. >> >> Es ist doch nicht nötig einen Alias zu setzen da dort sowieso 'nur' >> die Referenz zum Speicherort enthalten ist. Sprich wenn ich nun das >> ganze ohne & machen würde. Würde PHP nicht den Umweg über $_SESSION >> gehen müssen?! > > wieso Umweg? egal Welchen Variablen-Namen er für den Inhalt einer > Variable verwendet, es ist der gleiche 'Weg' Ja, jetzt wo Du es sagst völlig richtig. > (PHP4) > $new = new Klasse; > $new_clone =& &new; > $new_clone2 =& $new_clone; > > der Zugriff über $new und $new_clone2 ist exakt identisch, keine Umweg, > so oder so rum. > > http://www.php.net/references > > bei PHP5 werden sowieso bei '=' nur noch Referenzen erzeugt und nicht > das ganze Objekt kopiert. Ich bin auch von PHP5 ausgegangen was natürlich in diesem Thread falsch ist. Eben genau das meinte ich. Eine Referenz vom Speicherort zu $_SESSION['obj'] und noch eine von $_SESSION['obj'] zu $obj. Aber eben genau das wahr mein Denkfehler. > >> Oder liege ich falsch ? > > Nur nebenbei: das heißt nicht Alias sondern Referenz. Ich wies, bin wohl gerade ein bisschen tcsh skript geschädigt :) -- Aron
php::bar PHP Wiki - Listenarchive