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

konet218 @ ybb.ne.jp konet218 @ ybb.ne.jp
2004年 11月 8日 (月) 19:36:36 JST


近藤です。

使い道がよく解りません。
代入演算子とはどういった時に重宝するのでしょうか?

きしださんが、

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

と言っておられますが、無駄を無くす為だけに利用するモノなのでしょうか。

# 古いスレッドに反応して申し訳ないです…。



On Wed, 28 Jan 2004 02:27:55 +0900
naoki kishida <kishida @ fk.urban.ne.jp> wrote:

> > 代入演算子 =& について教えてください。 
> 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も"どろどろ"になります。





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