EDIT: (AKTUALISIERT)
Vielleicht war meine Frage nicht deutlich genug. Okay, sagen wir es mal so:
$arr["a"] = 10;
var_dump($arr);
$arr["b"] =& $arr["a"];
var_dump($arr);
der erste var_dump liefert:
array
'a' => int 10
Während die zweite zurückkehrt:
array
'a' => &int 10
'b' => &int 10
Wenn ich unset($arr["a"]) wird er zurückkehren:
array
'b' => int 10
Wenn 2 oder mehr Variablen auf denselben Inhalt "zeigen", zeigt var_dump den Verweis mit einem kaufmännischen Und-Zeichen (&) an.
Im Fall von $_SESSION, sogar mit register_long_arrays = Aus $_SESSION zeigt immer noch einen Verweis an. Es ist also offensichtlich, dass auch die andere Variable auf denselben Inhalt verweist.
Mit anderen Worten, wenn ich unset($_SESSION) gibt es immer noch irgendwo eine andere Variable, die mit verknüpft werden kann. In dem obigen Beispiel, wenn ich unset($arr["a"]) Ich kann diesen Inhalt immer noch wiederherstellen, wenn ich einen Link erstelle, etwa so: $arr["z"] =& $arr["b"] .
Meine ursprüngliche Frage war also, ob jemand weiß, WELCHE diese andere Variable ist? Es ist sehr wahrscheinlich, dass eine solche Variable nicht existiert... aber ich habe mich gefragt, warum in PHP diese Referenz angezeigt wird.
Gracias
(Originalfrage:)
Wenn Sie eine Sitzung in PHP erstellen, zum Beispiel:
session_start();
$_SESSION["name"] = "my name";
und geben Sie die GLOBAL-Variablen mit aus:
var_dump($GLOBALS);
werden Sie so etwas sehen wie:
'HTTP_SESSION_VARS' => &
array
'name' => string 'my name' (length=7)
'_SESSION' => &
array
'name' => string 'my name' (length=7)
'HTTP_SERVER_VARS' =>
array
...
Wie Sie sehen können, sind die beiden Variablen $GLOBAL[HTTP_SESSION_VARS] und $_SESSION Referenzen auf den Inhalt eines anderen Objekts... Weiß jemand, welches dieses Objekt ist?
Theoretisch müsste es möglich sein, auf diese Inhalte zuzugreifen, wenn ich beide Variablen entferne. Inhalt... irgendein Hinweis?
Ich danke Ihnen!