カテゴリー
PHP

参照渡しと値渡しについて知ろう

この章では参照渡しと値渡しについて説明します。
PHPには変数に値を渡す方法が2種類あります。
1つが値渡しで、もう一つが参照渡しです。
値渡しとは今までと同じ代入の仕方ですが、ある変数に代入したデータを他の変数へ代入することを意味します。
ただデータを移しているだけなので、当たり前ですが$aも$bも違う変数になります。
$bには$aの値が代入されているのでリンゴが出力されます。
1
以下のようにユーザー定義関数に変数の値を渡しましたが、これも値渡しになります。
11参照渡しは値を渡すときに変数の前に1を付けます。1 「&」を付けて変数を代入しますと代入する変数と代入される変数の両方が同じものを指すようになります。
つまり、$aに1を付けて$bに代入しますと2つの変数は一心同体になりますので、$bにトマトを代入すると$aまでトマトに書き替わります。
専門的に言いますとデータが保存してあるアドレスが同じになるということです。
アドレスとはデータが保管してある場所です。
この参照渡しは関数でも使うことが出来ます。
仮引数に1を付けますと参照渡しになります。
この関数の中の$n1は1を掛けた結果、1050に変わっています。
この戻り値が$resultに入りますので1は1050になります。
1
ではecho $a;はどうでしょうか?
参照渡しでデータを渡した結果、$aと$n1は同じものを指すようになりましたので、$aも1050になります。