flufo: seltsames verhalten bei referenzen

Beitrag lesen

hallo forum,

ich habe folgendes script:

----- script --------------------------------------
<pre>
<?php

funktion zum testen ob zwei arrays auf

den selben inhalt referenzieren

function isSame($first,$second)
{
    # das ich nach ..st['self'].. abfrage
    # hat den hintergrund das ja eine kopie
    # übergeben wird und somit auf dem ersten
    # level keine instanz möglich wäre
    $first['self']['uniqueName'] = true;

if(isset($second['self']['uniqueName']))
        echo "same\n";
    else
        echo "NOT same\n";

unset($first['self']['uniqueName']);
}

recursives array erstellen

$array = array();
$array['self'] =& $array;

isSame($array,$array['self']);

beliebige referenz setzen

$foo =& $array;

isSame($array,$array['self']);

beliebige referenz wieder löschen

unset($foo);

isSame($array,$array['self']);

?>
</pre>
----- /script --------------------------------------

wenn ich dieses ausführe bekomme ich folgende ausgabe:

----- ausgabe --------------------------------------
NOT same
same
NOT same
----- /ausgabe --------------------------------------

meines erachtens sollte aber jedes mal "same" rauskommen(?)
wieso muss erst eine beliebige referenz bestehen damit es funzt? eigentlich sollte es da doch keinen zusammenhang geben?

getestet auf 4.3.3 und 5.0.0 beta 4 jeweils auf win32

ist das gewollt bzw. resultierend? und wenn woraus? ich komme nicht drauf ... wäre sehr dankbar wenn mir wer einen hinweis geben kann.

beste grüße - flufo