[請益] 關於 class / function 之間的傳址
因為請問的有點難以解釋,所以用 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)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章
151
156