変数の参照渡し

変数の参照渡しとは、ある変数に代入した値を、他の変数から参照すること。一方の変数は、もう一方の変数の、別名(エイリアス)となる。

変数Aと変数Bを参照するには、変数Aの前に&を付け、参照渡しで、変数Bへ代入する。その後、変数Aを再定義すると、変数Bも再定義される。変数Bを再定義すると、変数Aも再定義される。つまり、どちらか一方の変数を再定義すると、もう一方の変数を再定義する。「一方の変数は、もう一方の変数の、別名(エイリアス)」とも言える。

どちらか一方の変数を再定義しても、もう一方の変数を再定義させたくないときは、変数の値渡しを使う。

オブジェクト変数の参照渡しについては、オブジェクト変数の参照渡しのページへ。

参照渡しで代入

$varA = "サンプル"; // 文字列「サンプル」を代入
$varB = &$varA; // $varAを参照渡しで代入

変数$varAに、文字列「サンプル」を代入。変数$varBに、変数$varAを参照渡しで代入。

サンプル

<?php
$varA = "レッド";
$varB = $varA; // 値渡しで代入
$varC = &$varA; // 参照渡しで代入
$varA = "ブルー"; // $varAを再定義すると、$varCの値も変わることに注目
echo '$varA: ' . $varA . '<br />';
echo '$varB: ' . $varB . '<br />';
echo '$varC: ' . $varC . '<br />';
$varC = "イエロー"; // $varCを再定義すると、$varAの値も変わることに注目
echo '$varA: ' . $varA . '<br />';
?>

↓↓↓出力結果↓↓↓

$varA: ブルー
$varB: レッド
$varC: ブルー
$varA: イエロー

スポンサード リンク

カテゴリー: PHP, 変数 タグ: パーマリンク