PHP 8.2 को अल्फा परीक्षण सुरु भएको छ

PHP 8.2 प्रोग्रामिङ भाषाको नयाँ शाखाको पहिलो अल्फा रिलीज प्रस्तुत गरिएको छ। रिलिज नोभेम्बर 24 मा निर्धारित छ। मुख्य नवाचारहरू पहिले नै परीक्षणको लागि उपलब्ध छन् वा PHP 8.2 मा कार्यान्वयनको लागि योजना बनाईएको छ:

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

स्रोत: opennet.ru

एक टिप्पणी थप्न