Yaf中init方法一开始就实例化多个类并把它们存在私有属性中与需要再去new 类有什么区别吗?

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

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

与以下写法有什么不同吗?

<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

在下小菜鸟一枚,希望有个良好的编程习惯,有些基础不踏实 还望指点

回复内容:

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

与以下写法有什么不同吗?

<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

在下小菜鸟一枚,希望有个良好的编程习惯,有些基础不踏实 还望指点

上面那样写可以保证在当前类作用域下的单例,减少重复写new不过对于需要那些需要使用时实例化的类并不适合写在这,而且如果你的类是遵循同一interface开发的,在更换的时候只需修改init里面的new。不管怎么样,我还是喜欢有Ioc容器

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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!