मैं इस तरह कोड का उपयोग क्यों नहीं कर सकता?PHP के पास कोई डिफ़ॉल्ट कन्स्ट्रक्टर क्यों नहीं है?
<?php
class NoConstructor {
}
class ChildWithConstructor extends NoConstructor {
public function __construct() {
parent::__construct();
// do something
}
}
$foo = new ChildWithConstructor();
// **Fatal error: Cannot call constructor in file.php on line 8**
ईजी। जावा कक्षाओं में डिफ़ॉल्ट है, कोई तर्क कन्स्ट्रक्टर नहीं है। इसे स्पष्ट रूप से परिभाषित नहीं किया जा सकता है।
PHP व्यवहार परेशानी का कारण बन सकता है जब हम अभिभावक वर्ग से कोई तर्क निर्माता नहीं निकालते हैं, उदाहरण के लिए। जब हमें लगता है कि इसकी आवश्यकता नहीं है।
क्या किसी को पता है कि PHP निर्माता इसे इस तरह क्यों बनाते हैं?
अपने प्रश्न के अलावा यह उल्लेख किया जाना चाहिए कि आप इसे हल कर सकते हैं: कॉल से पहले कार्य अस्तित्व की जांच करें। –
PHP रचनाकारों ने मूर्खतापूर्ण निर्णयों का * बहुत * बनाया ... –
http://www.php.net/manual/en/function.is-callable.php: अगर (is_callable ('parent :: __ build')) { माता-पिता :: __ निर्माण(); } –