में बाल कन्स्ट्रक्टर से पहले अभिभावक कन्स्ट्रक्टर को कॉल करें, मैं सोच रहा था कि क्या माता-पिता __construct() को PHP में विरासत के साथ बच्चे के __construct() से पहले कॉल करना संभव है।PHP
उदाहरण:
class Tag {
__construct() {
// Called first.
}
}
class Form extends Tag {
__construct() {
// Called second.
}
}
new Form();
आदर्श रूप में, मैं उन दोनों के बीच में कुछ करने के लिए सक्षम होगा। यदि यह संभव नहीं है, तो क्या कोई विकल्प है, जो मुझे ऐसा करने की अनुमति देगा?
कारण यह है कि मैं ऐसा करना चाहता हूं टैग के लिए विशिष्ट डिफ़ॉल्ट सेटिंग्स का एक गुच्छा लोड करने में सक्षम होना चाहिए, जब फॉर्म __construct() कहा जाता है।
संपादित करें: क्षमा करें इसे जोड़ने के लिए भूल गए .. मैं बच्चे वर्ग से माता-पिता को कॉल नहीं करना चाहूंगा। यह बस, क्योंकि यह कुछ निजी डेटा (माता-पिता के लिए) बच्चे को उजागर करता है, जब आप एक तर्क के रूप में यह पारित
यह वह जगह है कि मैं क्या करना चाहते हैं:
$tag = new Tag($privateInfo, $publicInfo);
$tag->extend(new Form()); // Ideal function, prob doesn't work with inheritance.
Tag.php
class Tag {
private $privateInfo;
public $publicInfo;
__construct($private, $public) {
$this->privateInfo = $private;
$this->publicInfo = $public;
}
}
Form.php
class Form extends Tag {
__construct() {
echo $this->publicInfo;
}
}
समझ में आओ?
धन्यवाद! मैट मुलर
आप आप इस से क्या मतलब * पर विस्तृत कर सकते हैं 'कुछ निजी डेटा (माता-पिता के लिए) बच्चे को उजागर करता है' *? –
अभिभावक वर्ग का निजी डेटा किसी भी उप-वर्ग के संपर्क में नहीं आएगा। सार्वजनिक या संरक्षित डेटा, निजी नहीं होगा। –
याहू, लेकिन अगर (निजी) पैरामीटर पहले बच्चे के कन्स्ट्रक्टर के माध्यम से जाते हैं, तो बच्चे को उनके पास पहुंच है। मैंने इसे स्पष्ट करने के लिए संपादित किया। – Matt