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

मैं PHP में अनाम फ़ंक्शंस के साथ गुणों को प्रारंभ क्यों नहीं कर सकता?

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

Why Can\'t I Initialize Properties with Anonymous Functions in PHP?

गुमनाम कार्यों के साथ संपत्ति आरंभीकरण: क्यों और कैसे?

जैसा कि नीचे दिए गए कोड स्निपेट में बताया गया है, किसी संपत्ति को अज्ञात कार्यों के साथ प्रारंभ करना क्लास घोषणा PHP में "पार्स त्रुटि: सिंटैक्स त्रुटि, अप्रत्याशित T_FUNCTION" ट्रिगर करती है। फिर भी, कंस्ट्रक्टरों के भीतर गुणों को कार्य सौंपना संभव है, जैसा कि दूसरे स्निपेट में दिखाया गया है।

// Property initialization with anonymous function error
class AssignAnonFunction {
    private $someFunc = function() {
        echo "Will Not work";
    };
}

// Property initialization in constructor
class AssignAnonFunctionInConstructor {
    private $someFunc;

    public function __construct() {
        $this->someFunc = function() {
            echo "Does Work";
        };
    }
}

अनाम फ़ंक्शंस के साथ गुणों को सीधे प्रारंभ करने में असमर्थता PHP के कार्यान्वयन से उत्पन्न होती है। गुणों को निरंतर मानों के साथ आरंभ किया जाना चाहिए जो संकलन के दौरान मूल्यांकन योग्य हैं, और फ़ंक्शन इस मानदंड को पूरा नहीं करते हैं।

इस सीमा के बावजूद, PHP कंस्ट्रक्टर के भीतर गुणों के लिए कार्यों के असाइनमेंट की अनुमति देता है। ऐसा इसलिए है क्योंकि कंस्ट्रक्टर्स को रनटाइम पर निष्पादित किया जाता है, जिससे गतिशील असाइनमेंट की अनुमति मिलती है।

हालांकि यह वर्कअराउंड लचीलापन प्रदान करता है, लेकिन अनाम कार्यों के साथ प्रत्यक्ष संपत्ति आरंभीकरण की कमी कुछ परिदृश्यों में एक खामी हो सकती है। इसके लिए अतिरिक्त कोड की आवश्यकता होती है और यह कोड पठनीयता को प्रभावित कर सकता है।

हालांकि PHP में इस डिज़ाइन निर्णय का कारण कुछ हद तक काल्पनिक है, संभावित स्पष्टीकरण में ऐसी सुविधा को लागू करने की जटिलता और इसके लिए अपर्याप्त मांग शामिल है।

नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3