はじめに
変数とは「値を格納するための箱」のようなものです。
「=」演算子で変数を変数に代入する場合は、基本的には値の代入となりますが、
値を代入するにあたり、値をそのまま代入する方法の他に参照(リファレンス)を代入する方法があります。
値による代入
- 値による代入とは、メモリ上の値を別のアドレスにコピーすることを言います。
つまり、値をコピーするような代入となります。
<?php
$a = 1;
$b = $a;
$a = 99;
echo $b; // 結果:1
参照(リファレンス)による代入
- 参照による代入とは、メモリ上のアドレスそのものを引き渡す代入のことを言います。
つまり、値を共有するような代入となります。 - 参照による代入を行う場合は変数の「$」の前に「&」を付けます。
<?php
$a = 1;
$b = &$a;
$a = 99;
echo $b; // 結果:99
まとめ
- 変数の代入には「値による代入」の他に「参照による代入」という方法がある。
- 値の代入はメモリの値を別のアドレスにコピーする一方、参照の代入はメモリ上のアドレスそのものを引き渡す。