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?

WBOY
Freigeben: 2016-10-22 00:14:14
Original
1620 Leute haben es durchsucht

Hinweis: Init in Yaf wird standardmäßig als __construct()

verstanden.
<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>
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren
Nach dem Login kopieren

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

Antwortinhalt:

Hinweis: Init in Yaf wird standardmäßig als __construct()

verstanden.
<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>
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren
Nach dem Login kopieren

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage