##リファレンスとは(PHP)
###例1と例2を比較して理解しよう!
#####(例1)
$a = 'qiita';
$b = $a;
$a[0] ='z';
echo $a . PHP_EOL;
echo$B . PHP_EOL;
上のコードを実行すると、
zhp
php
を返す。
#####(例2)
$a = 'qiita';
$b = &$a;
$a[0] ='z';
echo $a . PHP_EOL;
echo$B . PHP_EOL;
上のコードを実行すると、
zhp
zhp
を返す。
###解説
変数(箱)の中に値(中身)が入っている。
・例1のような通常の代入は$aの変数の値を$bの変数に代入している。
訳すと、$aという名前の箱の中身を$bという名前の箱の中にコピーして入れている。
なので、$aの値と$bの値は別々で存在しており、三行目で変更しているのは$aの中の値だけである。
・例2はリファレンスを代入している。
リファレンスとは同じ変数を異なった名前で呼び出すこと。「あだ名」である。
つまり例2は一つの値が入っている変数の名前が二つある状態。
訳すと、$aというあだ名をもった中身(qiita)が入っている箱に$bというあだ名をつけている。
なので、$aの値と$bの値は同じものであり、三行目は$aと$bの共通の値を変更していることになる。