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