Heim > Artikel > Backend-Entwicklung > Gibt es einen Unterschied zwischen der init-Methode in Yaf, die zu Beginn mehrere Klassen instanziiert und in privaten Eigenschaften speichert, und der Notwendigkeit, erneut eine neue Klasse zu erstellen?
Hinweis: Init in Yaf wird standardmäßig als __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>
Gibt es einen Unterschied zum folgenden Schreiben?
<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>
Ich bin ein Neuling, ich hoffe, dass ich gute Programmiergewohnheiten habe, ich habe einige schwache Grundlagen, also hoffe ich, dass Sie mir einen Rat geben können
Hinweis: Init in Yaf wird standardmäßig als __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>
Gibt es einen Unterschied zum folgenden Schreiben?
<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>
Ich bin ein Neuling, ich hoffe, dass ich gute Programmiergewohnheiten habe, ich habe einige schwache Grundlagen, also hoffe ich, dass Sie mir einen Rat geben können
Das Schreiben wie oben kann einen Singleton im aktuellen Klassenbereich sicherstellen und das wiederholte Schreiben neuer Klassen reduzieren. Es ist jedoch nicht geeignet, hier für Klassen zu schreiben, die bei der Verwendung instanziiert werden müssen, und wenn Ihre Klasse nach dem entwickelt wird gleiche Schnittstelle Ja, Sie müssen beim Ersetzen nur new in init ändern. Wie auch immer, ich habe immer noch gerne Ioc-Container