Parametreli Oluşturucu Basamaklı

2 Cevap php

Aşağıdaki durum düşünün

class URISplit {

    var $REQ_URI;

    //some more variables

    function __construct($uri) {
        //some code
        $this->REQ_URI = $uri;
        //some code yet again
    }
}

ve şu

class URIResolve extends URISplit {

    //some variables

    function __construct($uri) {
        //some code
    }
}

ve başka bir

class PageControl extends URIResolve {

    //some variables

    function __construct($uri) {

        //some more code

    }
}

ve şimdi aşağıdaki deyim

$page = new PageControl($_SERVER['REQUEST_URI']);

Bu ifade tüm sınıfların uygun inşaat sağlayacaktır.

Diğer bir deyişle, class URISplit ve kurucular class URIResolve class PageControl 'nin kurucusuna verilen dizeyi kullanın ve uygun inşaat yapacağız.

Benim Amaç sadece class PageControl bir nesne oluşturmak ve rahatla ve işi görmektir. İş demek ->

  1. (class URISplit tarafından yapılır) URI bölme
  2. (class URIResolve ile yapılır) (burada olsun onun bir yazı, sayfa, haber, ya da başka bir şey, yani sordu ne için veri getirmek için) bunu çözme
  3. Uygun başlıkları, sayfaları ve class PageControl fonksiyonları tarafından yapılan diğer sayfası bileşenlerine (yükleme

Vay! Uzun bir soru!

2 Cevap

Sen açıkça çocuğun birinden ana yapıcısı aramalısınız. Örnek için this site bir göz atın.

Nedeni, sınıf çocuk ebeveyn Oluşturucu bazı farklı argümanlar vermeyi tercih edebilir olmasıdır.

Heck, olması bile mümkün bir

class SOSplit extends URISplit {
    function __construct() { 
        parent::__construct( "http://stackoverflow.com" );
    }
}

class URIResolve extends URISplit {

    //some variables

    function __construct($uri) {
        parent::__construct( $uri);
    }
}

I http://php.net/manual/en/language.oop5.decon.php anlatıldığı gibi ana kurucusuna çağrı eklemek gerektiğini düşünüyorum

class SubClass extends BaseClass {
  function __construct() {
    parent::__construct();
    print "In SubClass constructor\n";
  }
}