[請益]return $this; 與 return (&$this); 的觀念釐清
首先要說明一下 return (&$this); 的意思
應該是要下面這樣才對
$obj = &$this;
return $obj; // 直接寫 return (&$this) 會有語法上的錯誤
我是想問一個觀念上的問題,算是call by refernce的觀念
先舉下面的code為例子:
class OBJECT_A {
private $var = 'obja';
functio foo() { return $this }
}
$obja = new OBJECT_A;
class OBJECT_B {
private $var = 'objb';
functio foo() { $obj = &$this; return $obj; }
}
$objb = new OBJECT_B;
$a = $obja->foo();
$b = $objb->foo();
現在這個範例中有四個變數 $obja, $objb, $a, $b
照 php 中 Variable References 的觀念來看這四個變數的關係, 依我的理解是
$a is not equal $obja, $a 是個新的物件OBJECT_A
$b equal $objb, $b 和 $objb 是完全相同的物件
不知道我在觀念上是否有誤?
另外我想知道 return $this; 的作法,是否等於 clone 一個新物件呢?
那這樣 return $this; 是否就會再增加一個與原物件相同大小的記憶體空間嗎?
我的目的是想清楚地瞭解php是如何處理記憶體的調用
理想上我希望能不增加記憶體的使用量,就能讓物件在整個程式內被共同使用
所以 return $this; 是否會再新增記憶體空間, 對我相當地重要
如果我的理解沒有錯誤
那我會使用 $obj = &$this; return $obj; 這樣的方式達到我的目的
還請各位板上的朋友多多討論
謝謝指教
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.57.134.105
推
09/06 15:29, , 1F
09/06 15:29, 1F
→
09/06 15:29, , 2F
09/06 15:29, 2F
PHP 近期熱門文章
PTT數位生活區 即時熱門文章