यह एक सामान्य श्रेणी का निर्माता है। के निम्न उदाहरण पर नजर डालते हैं:
class A {
protected $some_var;
function __construct() {
$this->some_var = 'value added in class A';
}
function echo_some_var() {
echo $this->some_var;
}
}
class B extends A {
function __construct() {
$this->some_var = 'value added in class B';
}
}
$a = new A;
$a->echo_some_var(); // will print out 'value added in class A'
$b = new B;
$b->echo_some_var(); // will print out 'value added in class B'
जैसा कि आप देख, वर्ग बी ए से सभी मूल्यों और कार्यों तो वर्ग के सदस्य $some_var
एक से और साथ ही बी से पहुँचा जा सकता है विरासत क्योंकि हम एक निर्माता जोड़ दिया है वर्ग बी में, वर्ग एक के निर्माता नहीं है जब आप कक्षा बी की एक नई वस्तु बना रहे हैं इस्तेमाल किया जाएगा
अब निम्नलिखित उदाहरणों पर गौर:
class C extends A {
// empty
}
$c = new C;
$c->echo_some_var(); // will print out 'value added in class A'
आप देख सकते हैं, क्योंकि हमारे पास एक कन्स्ट्रक्टर घोषित नहीं किया, सी के निर्माता लस ए का उपयोग पूरी तरह से किया जाता है। लेकिन हम निम्नलिखित है, जो क्लास सी के बराबर है भी कर सकते हैं:
class D extends A {
function __construct() {
parent::__construct();
}
}
$d = new D;
$d->echo_some_var(); // will print out 'value added in class A'
तो तुम केवल जब आप कुछ करने के लिए बच्चे को कक्षा में एक निर्माता चाहते लाइन parent::__construct();
उपयोग करते हैं, और माता पिता के निर्माता पर अमल करने की है। उदाहरण दिया:
class E extends A {
private $some_other_var;
function __construct() {
// first do something important
$this->some_other_var = 'some other value';
// then execute the parent constructor anyway
parent::__construct();
}
}
अधिक जानकारी यहां पाया जा सकता है: http://php.net/manual/en/language.oop5.php
'रचनाकार' के बारे में जानें। –
अभिभावक :: __ निर्माण() सबक्लास निर्माता [डॉक्टर] (http://php.net/manual/fr/language.oop5.decon.php) – Bora
अच्छी तरह से, मुझे पता है कि रचनाकार क्या करते हैं। वे उन जादू विधियों में से एक हैं जो कक्षा शुरू होने पर स्वचालित रूप से चलेंगे, लेकिन जो मैं पूछ रहा हूं वह अंतर है यदि मैं इसे घोषित नहीं करता क्योंकि परिणाम विशेष रूप से कोडिनेटर के साथ बहुत अलग नहीं लगता है। –