Home > PHP | コンシューマーゲーム > newと参照と私

newと参照と私

最近値下げの話ばかり書いていますが、XBOXが値下げされるような雰囲気を察知しました。
XBOX意外と面白そうなんだよな。故障率高いですが。

newと参照は曲者です。昔はまったのでメモ。


<?php

class RefObj {
    var $val;

    function RefObj($val) {
        $this->val = $val;
    }

    function out() {
        echo $this->val . "\n";
    }
}

$data = new RefObj("aaa");
$data_ref =& $data;             // (1)

$data = new RefObj("bbb");   // (2)
$data_ref->out();                // (3)

$data =& new RefObj("ccc"); // (4)
$data_ref->out();               // (5)

?>

上記の結果は


bbb
bbb

(1)で$data_refには$dataの参照を保持することになります。
(2)で$dataに新しいRefObjを代入していますが、これでは$dataの参照領域みたいなものは変わらない。つまり、$dataの中身(値)が変わるだけで入れ物は変わらない。ということで、$data_refは値が変わった$dataを指しています。したがって(3)でbbb。
(4)で今度はnewの参照先を代入しています。ここでは$dataの参照領域が変更され、つまり入れ物自体が変わるわけで、そんなことを知らない$data_refは前の入れ物を見ています。したがって(5)はbbb。

まあ、上記の説明が正しいかどうかはともかく、結果はbbbとbbbになる。
説明がおかしい場合(およびXBOXが故障した場合)はご連絡ください。

以上

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://red-treasure.com/report/wp-trackback.php?p=50
Listed below are links to weblogs that reference
newと参照と私 from コスミー報告書[社外秘]

Home > PHP | コンシューマーゲーム > newと参照と私

Search
Feeds
Meta
 合計:018987
 今日:0126 昨日:0157

Return to page top