मैं PHP सीख रहा हूं और कुछ आश्चर्यजनक व्यवहार पाया जब मैं यह पता लगाने की कोशिश कर रहा था कि एक निर्माता को क्यों नहीं बुलाया जा रहा था।क्या मैं अभिभावक के निर्माता का उपयोग करने के लिए एक बाल वर्ग को मजबूर कर सकता हूं?
<?php
class Shape {
function __construct() {
echo 'Shape.';
}
}
class Triangle extends Shape {
function __construct() {
echo 'Triangle';
}
}
$tri = new Triangle();
?>
मुझे जावा में उपयोग किया जाता है, इसलिए मैंने सोचा कि यह "आकार। त्रिकोण" आउटपुट होगा। आश्चर्य की बात है, यह सिर्फ "त्रिकोण" आउटपुट करता है। मैंने समस्या की खोज की और स्पष्ट रूप से मैं बच्चे वर्ग में parent::__construct();
डालकर इसे ठीक कर सकता हूं, लेकिन यह आदर्श प्रतीत नहीं होता है। क्या यह सुनिश्चित करने के लिए कि बाल कक्षाएं हमेशा माता-पिता कन्स्ट्रक्टर को कॉल करती हैं, आकार के वर्ग में कुछ भी कर सकता हूं? जब भी माता-पिता के पास कोई कन्स्ट्रक्टर होता है तो क्या मुझे वास्तव में parent::__construct();
प्रत्येक बच्चे की कक्षा में लिखना होगा?
मुझे यकीन है कि आपको यह सुनिश्चित करना होगा कि जब तक आप बच्चे के निर्माता को परिभाषित नहीं करते हैं। –
संभावित डुप्लिकेट [क्या सुपरक्लास का कन्स्ट्रक्टर PHP में बाल कन्स्ट्रक्टर के अंदर चलाया जाता है?] (Http://stackoverflow.com/questions/738571/is-superclasss-constructor-run-inside-child-constructor-in-php) – outis