リファレンスが行うことは何ですか?リファレンスを使う基本操作には三通りあります。 リファレンスの代入、 リファレンス渡し、 そして リファレンスを返すことです。 この節では、これらの操作に関する基本的な解説をします。 そして、詳細な説明へのリンクを示します。 リファレンスの代入まず最初の操作です。PHP のリファレンスを使うと、 ふたつの変数が同じ内容を指すようにできます。 次の例を考えてみましょう。
リファレンスを返す関数でも 同じ構文が使用可能です
リファレンスを返さない関数で、同じ構文を使うとエラーになります。 new 演算子の結果に対して同じ構文を使った場合もエラーになります。 オブジェクトはポインタで渡されますが、 これはリファレンスとは異なります。 詳細な情報は オブジェクトと参照 にあります。 警告
関数の内部で 例2 関数内でのグローバル変数の参照
global $var; は、$var
=& $GLOBALS['var']; の短縮版だと考えてください。
これにより、他のリファレンスを $var に代入し、
ローカル変数のリファレンスのみを変更します。
厳密にリファレンスでの代入をしなくても、
しかし、配列の内部のリファレンスは危険もあるということに気をつけましょう。 通常の (リファレンスではない) 代入の右辺にリファレンスを使っても 左辺はリファレンスには変わりませんが、配列の内部のリファレンスは通常の代入のままとなります。 これは、関数をコールする際に配列をリファレンスで渡すときも同じです。 たとえば、次のようになります。
リファレンス渡しリファレンスの第 2 の使用法は、変数のリファレンス渡しです。この場合、 関数でローカル変数が作成され、コール側の変数が、それと同じ内容への リファレンスとなります。例を示します。
リファレンスによる戻り値リファレンスの第 3 の使用法は、 リファレンスによる戻り値 です。 |