★参照渡し


 値渡しに大して、関数内で変数値を変更すると、それが呼び出し側にも反映される引数の渡し方を 参照渡しと呼びます。
そのような渡し方をするには、引数に「&」(アンパサンド)をつけて関数を宣言します。

 下記の例は、値渡しの例に似ていますが、testfunc関数の宣言で引数に「&」をつけています。「呼び出し側」の
print分のうち、2回目でtestfunc関数の引数として変数$xを渡した場合の出力と、3回目でそのまま$xを出力した場合の
出力がともに「50」である点に注目してください。

例)
<?php

 function testfunc(&$a) {
  print "関数側 " . $a . "<br>";
  $a = $a * 10;
  print "関数側 " . $a . "<br>";
  return $a;
  }

 $x = 5;  print "呼び出し側 " . $x . <br>";
 print "呼び出し側 " . testfunc($x) . <br>";
 print "呼び出し側 " . $x .<br>";

?>

実行結果