註:Yaf 裡的init 在下預設理解為__construct()
<code>class Order{ private $extend = ''; private $order = ''; public function init(){ parent::init(); $this->order = new Order(); $this->extend = new OrderEx(); } public function listAction(){ $this->order->public(); } public function makeAction(){ $this->extend->public(); } }</code>
與以下寫法有什麼不同嗎?
<code>class Order{ private $extend = ''; private $order = ''; public function init(){ parent::init(); } public function listAction(){ $order = new Order(); $order->public(); } public function makeAction(){ $extend= new extend(); $extend->public(); } }</code>
在下小菜鳥一枚,希望有個良好的程式設計習慣,有些基礎不踏實 還望指點
註:Yaf 裡的init 在下預設理解為__construct()
<code>class Order{ private $extend = ''; private $order = ''; public function init(){ parent::init(); $this->order = new Order(); $this->extend = new OrderEx(); } public function listAction(){ $this->order->public(); } public function makeAction(){ $this->extend->public(); } }</code>
與以下寫法有什麼不同嗎?
<code>class Order{ private $extend = ''; private $order = ''; public function init(){ parent::init(); } public function listAction(){ $order = new Order(); $order->public(); } public function makeAction(){ $extend= new extend(); $extend->public(); } }</code>
在下小菜鳥一枚,希望有個良好的程式設計習慣,有些基礎不踏實 還望指點
上面那樣寫可以保證在當前類別作用域下的單例,減少重複寫new不過對於需要那些需要使用時實例化的類別並不適合寫在這,而且如果你的類別是遵循同一interface開發的,更換的時候只需修改init裡面的new。不管怎麼樣,我還是喜歡有Ioc容器