リファレンスが行わないこと
リファレンスを返す
リファレンスの説明
PHP Manual

## リファレンス渡し

リファレンスにより関数に変数を渡すことが可能です。この場合、関数内で その引数を修正可能になります。構文は次のようになります。

`<?php
function foo(&$var)
{
$var++;
}
$a=5;
foo($a);
// $a はここでは 6 です
?>`

> 注意: 関数コールの際には、リファレンス記号がないことに注意してください。 関数定義にのみリファレンス記号があります。リファレンスで正しく引数を 渡すには、関数定義のみで十分です。以前のバージョンの PHP では foo(&$a); のような形式で & を利用すると "Call-time pass-by-reference" という警告が発生していましたが、 PHP 5.3.0 以降では警告は発生しません。

次のものはリファレンスで渡すことが可能です。

- 変数、すなわち、foo($a)
- new 命令、すなわち、foo(new foobar())

- 関数から返されるリファレンスは、次のようになります。

  `<?php
  function foo(&$var)
  {
  $var++;
  }
  function &bar()
  {
  $a = 5;
  return $a;
  }
  foo(bar());
  ?>`
  リファレンスによる 返り値 に関する説明も参照ください。

他の式は、結果が未定義となるため、リファレンスで渡すべきではありません。 例えば、リファレンスで渡す次の例は、無効です。

`<?php
function foo(&$var)
{
$var++;
}
function bar() // & がないことに注意
{
$a = 5;
return $a;
}
foo(bar()); // PHP 5.0.5 以降、致命的なエラーが発生する
foo($a = 5); // 式、変数ではない
foo(5); // 致命的なエラーが発生する
?>`
以上の説明は、PHP 4.0.4 以降用です。

リファレンスが行わないこと
リファレンスを返す
リファレンスの説明
PHP Manual