リファレンスが行わないこと

これまでに説明したように、リファレンスはポインタではありません。このため、 次の例は期待通りに動作しません。

<?php
function foo (& $var )
{
    
$var =& $GLOBALS [ "baz" ];
}
foo ( $bar );
?>

ここでの動作としては、関数 foo $var はコール側の $bar と関連付けられますが、 $GLOBALS["baz"] に再結合されるといったものになります。 $bar は関数 foo で利用できないため、 リファレンス以外にはコール側の変数スコープにある $bar を何かに結合する手段はありません (この変数は $var として表されていますが、 $var はその変数の内容のみを有しており、 コール側のシンボルテーブルで名前と変数を結合したものではありません)。 関数内で指定した変数を参照するには、 リファレンス返し が使用可能です。