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

# リファレンスを返す

リファレンスを返すことは、結合する変数を見付けるために関数を使用し たい場合に便利です。パフォーマンスを向上させるためだけの目的で この機能を用いることはやめてください。 そのようなことをしなくても、PHP エンジンが自動的に最適化を行います。 リファレンスを返すのは、そうすべき妥当な理由がある場合に限られます! リファレンスを返す場合、次の構文を使用して下さい。

`<?php function &find_var($param) { /* ...コード... */ return $found_var; } $foo =& find_var($bar); $foo->x = 2; ?>`

この例では、関数 `find_var` により返された オブジェクトのプロパティが、設定されます。リファレンス構文を 使用しない場合のようにコピーとなるわけではありません。

> 注意: パラメータを渡す場合と異なり、ここでは、通常のようにコピーでは なくリファレンスで返り値を指定し、リファレンス結合を指定するために 両方の場所で `&` を使用する必要があります。 `$foo` について行われたのは、通常の代入では ありません。

> 注意: 以下のような形式で関数からリファレンスを返そうとした場合、 `return ($found_var);` これは、あなたが望んでいるように 式 の結果を返してくれることはありません。 可能なことは、値へのリファレンスを返すことができるということだけで、 それ以外の何者でもありません。 PHP 4.4.0 および PHP 5.1.0 以降では、式の結果や `new` 演算子の結果をそのまま返そうとした場合に `E_NOTICE` エラーが発生します。

前のページ | ホーム | 次のページ
リファレンス渡し | 上に戻る | リファレンスの解除