前の記事で変数は変数毎に値を格納するための領域をもつことを説明しました。PHPではこのような変数の使い方のほかに、他の変数への参照を設定することも可能です。
他の変数への参照を設定するには次のように記述します。
変数 =& 他の変数
「=」の代わりに「=&」を使うことで、右辺の変数の値をコピーするのではなく、右辺の変数のエイリアスとして左辺の変数を設定します。この結果、右辺の変数が格納された値に左辺の変数名でもアクセスできるようになります。
$num1 = 320;
$num2 =& $num1;
この場合、変数「num1」と変数「num2」の値はどちらも「320」となっています。
では変数「num1」に別の値を格納しています。
$num1 = 320;
$num2 =& $num1;
$num1 = 45;
変数「num1」と変数「num2」は同じ値に対する別名の関係のため、変数「num1」の値を同じように変更されます。あくまで1つの格納領域に2つの変数名が付いているだけのためです。