ホームページ > バックエンド開発 > PHPチュートリアル > PHP で参照型を返すメソッド、php が参照型を返す_PHP チュートリアル

PHP で参照型を返すメソッド、php が参照型を返す_PHP チュートリアル

WBOY
リリース: 2016-07-13 09:58:05
オリジナル
809 人が閲覧しました

参照型を返す PHP のメソッド、PHP は参照型を返す

参照を返す、定義または呼び出し時に & を省略することはできません。

これは比較的混乱を招く概念なので、特別な理由がない限り、使用しないことをお勧めします。

PHP5でリファレンスが変更されたため、PHP4/PHP5での動作に比較的大きな違いが生じ、混乱しやすいと言われています。

例を挙げてください:
コードをコピーします コードは次のとおりです:

$color = '黄緑';

関数 &getRef() {
グローバル $color;
$color を返します;
}

関数 getCopy() {
グローバル $color;
$color を返します;
}

$colorRef = &getRef();
$colorRef = 'ブルー';

//$colorCopy = getCopy();
//$colorCopy = '黒';


var_dump($color);
var_dump($colorRef);
//var_dump($colorCopy);

上記のコードを実行すると、&getRef() を使用すると $colorRef が $color にバインドされることがほぼ理解できるでしょう。これは、2 つの変数 $colorRef と $color が同じ値を指すことを意味します。いずれかの値を変更すると、もう一方の値も変更されます。

$color が配列の場合、上記のコードは PHP4/5 のどのバージョンでも同じように動作します。

$color がオブジェクトの場合に問題が発生します。

PHP4 では、getCopy はコピーされたオブジェクトを返します。&getRef() は参照を返します。

PHP5 は少し異なります
最新の PHP5.2 は PHP4 と同じように動作し、getCopy() はコピーを返し、&getRef() は参照を返します。
ただし、PHP5.1.6 など、一部の PHP5 バージョンはここで若干異なります。PHP5.1.6 では、getCopy() と &getRef() が両方とも参照であることが示されています。

ここで getCopy() と &getRef() は 2 つのグローバル関数であり、これらがクラスに配置され、クラスのメンバー関数になる場合は別の話になります...

追記: 参照を返してもパフォーマンスは向上しませんが、場合によってはパフォーマンスが低下することがあります。そのため、プログラムを「最適化」するためにこの機能を使用することを当然のことと考えないでください。

質問がある場合は、マニュアルを読むことでほとんどの場合答えが見つかります:

http://cn.php.net/manual/en/ language.references.php

www.bkjia.com本当http://www.bkjia.com/PHPjc/978725.html技術記事参照型を返す PHP のメソッド。
;
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート