PHP 7.4 में संपत्ति प्रकार के संकेतों की शुरूआत के साथ, वैध मान निर्दिष्ट करना महत्वपूर्ण है सभी संपत्तियों को यह सुनिश्चित करने के लिए कि उनके घोषित प्रकारों का सम्मान किया जाता है। एक अपरिभाषित संपत्ति, जिसका कोई निर्दिष्ट मूल्य नहीं है, किसी भी घोषित प्रकार से मेल खाने में विफल रहती है और त्रुटि संदेश ट्रिगर करती है: "टाइप की गई संपत्ति को आरंभीकरण से पहले एक्सेस नहीं किया जाना चाहिए"।
उदाहरण के लिए, नीचे दिए गए कोड पर विचार करें:
class Foo { private string $val; public function __construct(int $id) { $this->id = $id; } public function getVal(): string { return $this->val; } }
Foo के निर्माण के बाद $val तक पहुंचने पर त्रुटि होगी, क्योंकि इसका प्रकार अभी तक परिभाषित नहीं किया गया है (अपरिभाषित !== शून्य)।
इसे हल करने के लिए, सभी संपत्तियों के लिए मान निर्दिष्ट करें निर्माण या उनके लिए डिफ़ॉल्ट मान सेट करें:
class Foo { private string $val = null; // default null value public function __construct(int $id) { $this->id = $id; } }
अब, सभी संपत्तियों में वैध मान हैं, जिससे त्रुटि समाप्त हो गई है।
यह समस्या तब भी उत्पन्न हो सकती है जब इकाई संपत्तियों के लिए डेटाबेस मूल्यों, जैसे ऑटो-जेनरेटेड आईडी या टाइमस्टैम्प पर भरोसा किया जाता है। स्वचालित रूप से जेनरेट की गई आईडी के लिए, उन्हें अशक्त घोषित करें:
private ?int $id = null;
अन्य सभी के लिए, उपयुक्त डिफ़ॉल्ट मान चुनें जो उनके प्रकारों से मेल खाते हों।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3