"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > PHP में ओवरराइडिंग विधि पैरामीटर सख्त मानकों का उल्लंघन क्यों करते हैं?

PHP में ओवरराइडिंग विधि पैरामीटर सख्त मानकों का उल्लंघन क्यों करते हैं?

2024-11-06 को प्रकाशित
ब्राउज़ करें:795

Why Does Overriding Method Parameters in PHP Violate Strict Standards?

PHP में ओवरराइडिंग विधि पैरामीटर: सख्त मानकों का उल्लंघन

ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में, लिस्कोव प्रतिस्थापन सिद्धांत (एलएसपी) यह निर्देशित करता है किसी उपप्रकार की वस्तुएं प्रोग्राम के व्यवहार में बदलाव किए बिना अपनी मूल वस्तुओं को प्रतिस्थापित कर सकती हैं। हालाँकि, PHP में, एक अलग पैरामीटर हस्ताक्षर के साथ एक विधि को ओवरराइड करना सख्त मानकों का उल्लंघन माना जाता है।

यह उल्लंघन क्यों है?

PHP एक कमजोर टाइप है भाषा, जिसका अर्थ है कि कंपाइलर कंपाइल समय पर किसी वेरिएबल का सटीक प्रकार निर्धारित नहीं कर सकता है। इसका मतलब यह है कि जब कोई चाइल्ड क्लास पैरेंट क्लास विधि को ओवरराइड करता है, तो कंपाइलर यह सत्यापित नहीं कर सकता है कि नया हस्ताक्षर मूल के साथ संगत है।

परिणामस्वरूप, कंपाइलर एक संभावित समस्या को चिह्नित करते हुए एक सख्त मानक चेतावनी जारी करता है। प्रोग्राम के टूटने का कारण हो सकता है।

निम्न उदाहरण पर विचार करें:

class Foo
{
    public function bar(array $bar) {}
}

class Baz extends Foo
{
    public function bar($bar) {}
}

इस कोड में, Baz::bar() विधि एक अलग हस्ताक्षर के साथ Foo::bar() विधि को ओवरराइड करती है। कंपाइलर यह निर्धारित नहीं कर सकता है कि नया हस्ताक्षर मूल के साथ संगत है या नहीं, संभावित रूप से लाइन के नीचे समस्याएं पैदा कर रहा है। हस्ताक्षर, वांछित कार्यक्षमता प्राप्त करने के लिए वैकल्पिक दृष्टिकोण हैं:

फ़ंक्शन ओवरलोडिंग:

एक ही नाम लेकिन अलग-अलग हस्ताक्षर के साथ अलग-अलग फ़ंक्शन को परिभाषित करें। यह आपको एक ही फ़ंक्शन को कई परिभाषाओं के साथ ओवरलोड करने की अनुमति देता है।

रचना:

विभिन्न वर्गों की कार्यक्षमता को उनके तरीकों को संशोधित किए बिना संयोजित करने के लिए वंशानुक्रम के बजाय संरचना का उपयोग करें।
  • इन विकल्पों का पालन करके, आप प्राप्त करते समय सख्त मानकों के उल्लंघन से बच सकते हैं आपके PHP एप्लिकेशन में वांछित कार्यक्षमता।
विज्ञप्ति वक्तव्य यह लेख यहां पुनर्मुद्रित है: 1729202656 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3