B310 引数の参照渡し

通常、関数内で変数の値を変更しても、関数外には適用されません。しかし、「引数の参照渡し」を使うと、関数内で変数の値を変更すると、その値が関数外にも適用されるようになります。今回はこの引数の参照渡しについて紹介します。

引数の参照渡しの書き方

引数の参照渡しの書き方の基本

関数の引数を参照渡しする場合は、このように「引数変数名」の前に「&」記号を付けます。

PHP
function 関数名(&引数変数名) {
  // 処理
};

引数の参照渡しと通常の引数の違い

通常の引数

PHP
function test($a) {
  return ++$a;
}
$b = 1;
 
echo test($b) ."\n";
echo $b ."\n";

出力結果

PHP
2
1

関数「test」に引数「$b」を渡すと関数からの戻り値は「2」になります。しかし参照渡しではないので変数「$b」の値は「1」になります。

参照渡しの引数

PHP
function test(&$a) {
  return ++$a;
}
$b = 1;
 
echo test($b) ."\n";
echo $b ."\n";

出力結果

PHP
2
2

関数「test」に引数「$b」を参照渡しをしています。関数からの戻り値は「2」に、参照渡しなので変数「$b」の値も「2」になります。

---