PHP "Assign by reference" Seltsamkeit

Ich bin auf ein Code-Snippet gestoßen, das @ enthie$a = & $b; hatte aber nicht getestet, ob $ b tatsächlich existiert if (isset($b))). Ich war mir nicht sicher, wie PHP damit umgegangen ist, also habe ich einen kurzen Test gemacht und bin jetzt noch faszinierter.

$a = array('a'=>'b', 'x'=>'y');

$b = array();

$b[10] = &$a['a'];
$b[11] = &$a['ppp'];

var_dump($a);
var_dump($b);
echo (isset($a['ppp']) ? "SET" :" NOT SET") . "\n";
echo (isset($b[11]) ? "SET" :" NOT SET") . "\n";

Es ist nackter Code, aber die Ausgabe zeigt:

Nur die nackte Zuweisung von$b[11] = &$a['ppp'] reicht,var_dump($a)s wird berichtet, dass @ 3 Mitglieder hat, nicht 2, obwohl für @ keine Zuordnung vorgenommen wurd$a['ppp']. $a['ppp'] hat einen Wert NULL) aber auchisset()=FALSE.

ittlerweile zur gleichen Zeit,$b[11] zeigt einen WertNULL undisset()=FALSE obwohl sein Referent (anscheinend) does exist (!)

Ich weiß zu schätzen, dass das Überprüfen zuerst das 'Problem' behebt, aber ich suche hauptsächlich nach einem tieferen Verständnis. Was ist los