हां, क्लास के नाम के बजाय मैजिक फंक्शन __construct() का उपयोग करने के कई फायदे हैं। वे नीचे सूचीबद्ध हैं -
- मैजिक फंक्शन __construct PHP 5.4 में पेश किया गया था। __construct() का उपयोग करने का एक फायदा यह है कि यदि आप क्लास का नाम बदलते हैं, तो आपको कंस्ट्रक्टर को अपडेट करने की आवश्यकता नहीं है जो DRY (डोंट रिपीट योरसेल्फ) कॉन्सेप्ट को सपोर्ट करता है।
- यदि आपके पास एक चाइल्ड क्लास है तो आप पैरेंट कंस्ट्रक्टर को आसानी से कॉल करने के लिए parent::__construct() कॉल कर सकते हैं।
उदाहरण
<?php
class myclass{
public function __construct(){
echo 'The class "', __CLASS__, '" was initiated!'."\n";
}
}
class childclass extends myclass{
public function __construct() {
parent::__construct();
print "In SubClass constructor ";
}
}
$myobj = new childclass();
?>
आउटपुट
The class "myclass" was initiated! In SubClass constructor
नोट
"__CLASS__" जिसे मैजिक कॉन्स्टेंट कहा जाता है, इस मामले में उस क्लास का नाम लौटाता है जिसमें इसे कॉल किया जाता है।
पुराने स्टाइल के कंस्ट्रक्टर्स PHP 7.0 में DEPRECATED हैं और भविष्य के संस्करण में हटा दिए जाएंगे। आपको नए कोड में हमेशा __construct() का उपयोग करना चाहिए।