PHP マニュアル
前のページ | 第 21章リファレンスの説明 | 次のページ

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

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

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

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

前のページ | ホーム | 次のページ
リファレンスが行うことは何ですか? | 上に戻る | リファレンス渡し