PHP 5.2 सख्त मोड: सार स्टेटिक क्लास विधियों की अस्वीकृति क्यों?
PHP 5.2 में, सख्त चेतावनियों को सक्षम करने से एक परिचित चेतावनी ट्रिगर हो सकती है : "स्टेटिक फ़ंक्शन अमूर्त नहीं होना चाहिए"। यह चेतावनी PHP 5.2 में पेश किए गए बदलाव से उत्पन्न हुई है, जो अमूर्त स्थैतिक वर्ग विधियों को अस्वीकार करता है। अमूर्त स्थैतिक कार्यों को बेकार करना। जैसा कि अमूर्त स्थैतिक तरीकों में self कीवर्ड मूल वर्ग को संदर्भित करता है, न कि उस बच्चे वर्ग को जिस पर विधि लागू की गई थी, ऐसे तरीकों का कोई व्यावहारिक महत्व नहीं था। इस प्रकार, चेतावनी का उद्देश्य संभावित कोडिंग त्रुटियों को पकड़ना और रोकना था। स्थैतिक कीवर्ड का उपयोग करके मूल विधियों से बाल कक्षाओं की स्थैतिक विधियों को बुलाया जाना चाहिए। इससे वह तकनीकी बाधा दूर हो गई जिसने अमूर्त स्थैतिक तरीकों को बेकार बना दिया था। हालाँकि, चेतावनी एक कमजोर तर्क के आधार पर PHP 5.2 में जारी रही: कि अमूर्त स्थैतिक तरीकों को उजागर करने से सार्वजनिक तरीके टूट सकते हैं।
एक गलत धारणा
का औचित्य चेतावनी त्रुटिपूर्ण थी. सार स्थैतिक विधियाँ देर से स्थैतिक बाइंडिंग के साथ सह-अस्तित्व में हो सकती हैं, जो मूल विधियों से बाल वर्गों के स्थैतिक तरीकों को लागू करने के लिए एक वैध उपयोग का मामला प्रदान करती हैं।
भ्रम और एक गलत प्रतिक्रिया
ए देर से स्थैतिक बाइंडिंग जोड़ने के कारण चेतावनी को हटाने का अनुरोध करने वाली PHP बग रिपोर्ट को रासमस लेरडॉर्फ से खारिज करने वाली प्रतिक्रिया मिली। उन्होंने ग़लती से कहा कि देर से स्थैतिक बाइंडिंग के साथ अमूर्त स्थैतिक विधियाँ कार्यात्मक थीं, जो गलत था क्योंकि वे अभी भी चेतावनी को ट्रिगर कर रहे थे। इस भ्रम और स्पष्टता की कमी के कारण चेतावनी बनी रही। एक मात्र सूचना के लिए. PHP 7 की शुरूआत के साथ, अमूर्त स्थैतिक विधियाँ पूरी तरह से समर्थित हैं और बिना किसी चेतावनी के सुरक्षित रूप से उपयोग की जा सकती हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3