PHP 8.2 ची अल्फा चाचणी सुरू झाली आहे

PHP 8.2 प्रोग्रामिंग भाषेच्या नवीन शाखेचे पहिले अल्फा प्रकाशन सादर केले गेले आहे. 24 नोव्हेंबरला रिलीज होणार आहे. PHP 8.2 मध्ये चाचणीसाठी आधीच उपलब्ध असलेले मुख्य नवकल्पना किंवा अंमलबजावणीसाठी नियोजित:

  • वेगळे प्रकार जोडले “फॉल्स” आणि “नल”, जे वापरले जाऊ शकतात, उदाहरणार्थ, एरर टर्मिनेशन फ्लॅग किंवा रिक्त मूल्य परत करण्यासाठी फंक्शनसाठी. पूर्वी, “false” आणि “null” फक्त इतर प्रकारांच्या संयोगाने वापरले जाऊ शकत होते (उदाहरणार्थ, “string|false”), पण आता ते वेगळे वापरले जाऊ शकतात: function alwaysFalse(): false { return false; }
  • वर्ग केवळ-वाचनीय म्हणून चिन्हांकित करण्याची क्षमता जोडली. अशा वर्गांमधील गुणधर्म फक्त एकदाच सेट केले जाऊ शकतात, त्यानंतर ते बदलले जाऊ शकत नाहीत. पूर्वी, वैयक्तिक वर्ग गुणधर्म केवळ-वाचनीय म्हणून चिन्हांकित केले जाऊ शकतात, परंतु आता तुम्ही एकाच वेळी सर्व वर्ग गुणधर्मांसाठी हा मोड सक्षम करू शकता. वर्ग स्तरावर "रीडओनली" ध्वज निर्दिष्ट करणे देखील गुणधर्मांना गतिमानपणे वर्गात जोडण्यापासून अवरोधित करते. केवळ वाचनीय वर्ग पोस्ट { सार्वजनिक कार्य __रचना ( सार्वजनिक स्ट्रिंग $शीर्षक, सार्वजनिक लेखक $लेखक, ) {} } $पोस्ट = नवीन पोस्ट(/* … */); $post->अज्ञात = 'चुकीचे'; // त्रुटी: डायनॅमिक मालमत्ता तयार करू शकत नाही पोस्ट::$अज्ञात
  • क्लासमध्ये डायनॅमिकली गुणधर्म तयार करण्याची क्षमता (जसे की वरील उदाहरणातील "पोस्ट->अज्ञात") नापसंत केले गेले आहे. PHP 9.0 मध्ये, वर्गात सुरुवातीला परिभाषित नसलेल्या गुणधर्मांमध्ये प्रवेश केल्याने त्रुटी (ErrorException) येईल. stdClass मधील गुणधर्म किंवा डायनॅमिक गुणधर्म तयार करण्यासाठी __get आणि __set पद्धती प्रदान करणारे वर्ग अपरिवर्तित कार्य करत राहतील, केवळ अस्तित्वात नसलेल्या गुणधर्मांसह अंतर्निहित कार्यांना छुप्या बग्सपासून संरक्षण करण्यासाठी समर्थन दिले जाईल. जुन्या कोडचे कार्य जतन करण्यासाठी, "#[AllowDynamicProperties]" विशेषता प्रस्तावित आहे, ज्यामुळे डायनॅमिक गुणधर्मांचा वापर करता येतो.
  • त्रुटी दरम्यान स्टॅक ट्रेस आउटपुटमध्ये संवेदनशील पॅरामीटर्स फिल्टर करण्याची क्षमता प्रदान करते. समस्यांचा मागोवा घेणार्‍या आणि विकसकांना त्याबद्दल माहिती देणाऱ्या तृतीय-पक्ष सेवांना आपोआप पाठवल्या जाणाऱ्या त्रुटींबद्दलची माहिती आपोआप पाठवली जाते तेव्हा काही विशिष्ट माहिती काढणे आवश्यक असू शकते. उदाहरणार्थ, तुम्ही वापरकर्तानावे, संकेतशब्द आणि पर्यावरणीय व्हेरिएबल्सचा समावेश असलेले पॅरामीटर्स ट्रेसिंगमधून वगळू शकता. फंक्शन टेस्ट ($foo, #[\SensitiveParameter] $password, $baz ) { थ्रो नवीन अपवाद('एरर'); } चाचणी ('फू', 'पासवर्ड', 'बाज'); घातक त्रुटी: न पकडलेला अपवाद: test.php मध्ये त्रुटी:8 स्टॅक ट्रेस: ​​#0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} test.php मध्ये फेकले ओळ 8 वर
  • "${var}" आणि ${(var)} अभिव्यक्ती वापरून व्हेरिएबल व्हॅल्यूजला स्ट्रिंगमध्ये बदलण्याची क्षमता नापसंत केली गेली आहे. सामान्यतः वापरल्या जाणार्‍या "{$var}" आणि "$var" पर्यायांसाठी समर्थन कायम ठेवण्यात आले आहे. उदाहरणार्थ: "हॅलो {$world}"; ओके "हॅलो $वर्ल्ड"; ठीक आहे "हॅलो ${world}"; नापसंत: स्ट्रिंगमध्ये ${} वापरणे नापसंत आहे
  • कालबाह्य अंशतः समर्थित कॉलेबल ज्यांना "call_user_func($callable)" द्वारे कॉल केले जाऊ शकते परंतु "$callable()": "self::method" "parent::method" "static" ::method या स्वरूपात कॉलिंगला समर्थन देत नाही " ["स्वत:", "पद्धत"] ["पालक", "पद्धत"] ["स्थिर", "पद्धत"] ["फू", "बार::पद्धत"] [नवीन फू, "बार: :पद्धत" ]
  • स्थानिक-स्वतंत्र केस रूपांतरण लागू केले. strtolower() आणि strtoupper() सारखी फंक्शन्स आता नेहमी ASCII श्रेणीतील अक्षरांची केस "C" लोकेलमध्ये सेट केल्याप्रमाणे बदलतात.

स्त्रोत: opennet.ru

एक टिप्पणी जोडा