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