リファレンスにより関数に変数を渡すことが可能です。この場合、関数内で その引数を修正可能になります。構文は次のようになります。
関数コールの際には、リファレンス記号がないことに注意してください。 関数定義にのみリファレンス記号があります。リファレンスで正しく引数を 渡すには、関数定義のみで十分です。以前のバージョンの PHP では foo(&$a); のような形式で & を利用すると "Call-time pass-by-reference" という警告が発生していましたが、 これは今では廃止されています。次のものはリファレンスで渡すことが可能です。
変数、すなわち、foo($a)
new 命令、すなわち、foo(new foobar())
関数から返されるリファレンスは、次のようになります。
リファレンスによる 返り値 に関する説明も参照ください。他の式は、結果が未定義となるため、リファレンスで渡すべきではありません。 例えば、リファレンスで渡す次の例は、無効です。
以上の説明は、PHP 4.0.4 以降用です。