| ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot |
リファレンスが行うことは何ですか?リファレンスを使う基本操作には三通りあります。 リファレンスの代入、 リファレンス渡し、 そして リファレンスを返すことです。 この節では、これらの操作に関する基本的な解説をします。 そして、詳細な説明へのリンクを示します。 リファレンスの代入まず最初の操作です。PHP のリファレンスを使うと、 ふたつの変数が同じ内容を指すようにできます。 次の例を考えてみましょう。
<?php
リファレンスを返す関数や new 演算子でも 同じ構文が使用可能です (PHP 4.0.4 以降 PHP 5.0.0 未満まで)。
<?php E_DEPRECATED 、それより前のバージョンでは
E_STRICT レベルのメッセージが表示されます。
また、PHP 7.0.0 以降は、文法的に無効となります
(技術的な話をすると、PHP 5 以降では、リソース型のようなオブジェクト変数は
実際のデータへの単なるポインタとなりました。つまり、
オブジェクトのリファレンスはこれまでのような意味での "リファレンス"
つまりエイリアスとは異なります。
詳細な情報は
オブジェクトと参照 にあります)。
警告
関数の内部で global 宣言された変数にリファレンスを 代入すると、そのリファレンスは関数の内部でのみ参照可能となります。 これを避けるには、$GLOBALS 配列を使用します。 例2 関数内でのグローバル変数の参照
<?php
厳密にリファレンスでの代入をしなくても、 array() で作成した式は、配列の要素の先頭に & を追加したのと同じような動作をします。たとえば、次のようになります。
<?php しかし、配列の内部のリファレンスは危険もあるということに気をつけましょう。 通常の (リファレンスではない) 代入の右辺にリファレンスを使っても 左辺はリファレンスには変わりませんが、配列の内部のリファレンスは通常の代入のままとなります。 これは、関数をコールする際に配列をリファレンスで渡すときも同じです。 たとえば、次のようになります。
<?php リファレンス渡しリファレンスの第 2 の使用法は、変数のリファレンス渡しです。この場合、 関数でローカル変数が作成され、コール側の変数が、それと同じ内容への リファレンスとなります。例を示します。
<?php リファレンスによる返り値リファレンスの第 3 の使用法は、 リファレンスによる返り値 です。 |
各種マニュアル:
PHPマニュアル |
PEARマニュアル |
Smarty(英語)マニュアル |
PHP-GTKマニュアル |
「リファレンスが行うことは何ですか?」をGoogle検索
|