[請益] 關於 class / function 之間的傳址

看板PHP作者 (銀色)時間18年前 (2007/11/01 18:23), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
因為請問的有點難以解釋,所以用 sample 來說明問題: class ROC { var $list = array (); function set (& $n) { array_push ($this->list, &$n); } function che ($v) { $o = & new Va (); $o->v = $v; return $o; } } class Va { var $v; } $roc = new ROC (); $s = $roc->che (99); $roc->set ($s); 此時 $roc->list[0]->v = 99; 但如果再次進行以下 $s = $roc->che (98); $roc->set ($s); 此時 $roc->list[0]->v = 98; $roc->list[1]->v = 98; 但小弟希望的是 $roc->list[0]->v = 99; $roc->list[1]->v = 98; 換句話說,希望能讓 $v = new Va () 這個動作, 是完全將 $v 的位址和內容一起更新,請問有實做的方法嗎? (而且如果只能藉由更動 class 內的結構來達成的話…) 另外,如果是將 che 這個 function 拉到外面來使用(就是非在 class 中), 此時以 & new Va () 是可以完全產生新的 object 的, 所以小弟猜測是在傳的過程中有部份不是傳址, 不知有沒大大能解惑的? orz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.57.130.248 ※ 編輯: gpmm 來自: 61.57.130.248 (11/01 18:25)
文章代碼(AID): #17AQaja4 (PHP)
文章代碼(AID): #17AQaja4 (PHP)