PHPの全目次
変数の目次
変数を参照
前の記事で変数は変数毎に値を格納するための領域をもつことを説明しました。PHPではこのような変数の使い方のほかに、他の変数への参照を設定することも可能です。
他の変数への参照を設定するには次のように記述します。
変数 =& 他の変数
「=」の代わりに「=&」を使うことで、右辺の変数の値をコピーするのではなく、右辺の変数のエイリアスとして左辺の変数を設定します。この結果、右辺の変数が格納された値に左辺の変数名でもアクセスできるようになります。
$num1 = 320;$num2 =& $num1;
この場合、変数「num1」と変数「num2」の値はどちらも「320」となっています。
では変数「num1」に別の値を格納しています。
$num1 = 320;$num2 =& $num1;
$num1 = 45;
変数「num1」と変数「num2」は同じ値に対する別名の関係のため、変数「num1」の値を同じように変更されます。あくまで1つの格納領域に2つの変数名が付いているだけのためです。
サンプルコード
▼Example-variable5-1.php
<!DOCTYPE html><html lang=”ja”><head><meta http-equiv=”Content-Type” content=”text/html;charset=UTF-8″ /><title>PHPテスト</title></head><body>
<p>PHPのテストです。</p>
<p><?php$num1 = 320;$num2 =& $num1;
print ‘$num1 =’.$num1.'<br />’;print ‘$num2 =’.$num2.'<br />’;
$num1 = 18;
print ‘$num1 =’.$num1.'<br />’;print ‘$num2 =’.$num2.'<br />’;
$num2 = 75;
print ‘$num1 =’.$num1.'<br />’;print ‘$num2 =’.$num2;?></p>
</body></html>
上記のファイルをwwwサーバーのドキュメントルート以下に設置しブラウザーからアクセスすると次のように表示されます。
2つの変数は片方の変数への参照となっているため、どちらかの変数に別の値を格納すると、もう片方が格納している値にも反映されます。