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