[PHP-users 20075]Re: 代入演算子=&について教えてください。

naoki kishida kishida @ fk.urban.ne.jp
2004年 1月 28日 (水) 02:27:55 JST


きしだです

> 代入演算子 =& について教えてください。 

Cでいうところのポインタの代入になります。
通常の=演算子の場合は、コピーが代入されますが、=&の場合は参照が代入され
ます。

  class Hoge{
    var $a;
  }

というクラスがあるとして
  $o = new Hoge();
とすると、一旦Hogeのインスタンスを生成して、そのインスタンスのコピーが$a
に代入されるので、インスタンスがひとつ無駄になります。

また
  $o1 =& new Hoge();
  $o1->a = "でろでろ";
として
  $o2 = $o1;
  $o3 =& $o1;
とすると
  $o2->a = "だらだら";
としても$o1->aは"でろでろ"のままですが、
  $o3->a = "どろどろ";
とすると$o1->aも"どろどろ"になります。


----
岸田 哉生(きしだ なおき)
	email:kishida @ fk.urban.ne.jp
	http://www.fk.urban.ne.jp/home/kishida/



PHP-users メーリングリストの案内