PHP 8.2 جي الفا جاچ شروع ٿي وئي آهي

PHP 8.2 پروگرامنگ ٻولي جي نئين شاخ جو پهريون الفا رليز پيش ڪيو ويو آهي. رليز 24 نومبر تي مقرر ڪئي وئي آهي. مکيه جدت جيڪي اڳ ۾ ئي موجود آهن جاچ لاءِ يا PHP 8.2 ۾ عمل درآمد لاءِ رٿيل آهن:

  • شامل ڪيا ويا الڳ الڳ قسمون "غلط" ۽ "نال"، جيڪي استعمال ڪري سگھجن ٿيون، مثال طور، ھڪڙي فنڪشن لاءِ ھڪڙي غلطي ختم ٿيڻ واري جھنڊو يا خالي قدر واپس ڪرڻ لاءِ. اڳي، "false" ۽ "null" صرف ٻين قسمن سان گڏ استعمال ڪري سگھجن ٿيون (مثال طور، "string|false")، پر ھاڻي اھي الڳ الڳ استعمال ڪري سگھجن ٿيون: function alwaysFalse(): false { return false; }
  • ڪلاس کي صرف پڙهڻ لاءِ نشان لڳائڻ جي صلاحيت شامل ڪئي وئي. اهڙن طبقن ۾ ملڪيت صرف هڪ ڀيرو مقرر ڪري سگهجي ٿو، جنهن کان پوء انهن کي تبديل نه ٿو ڪري سگهجي. اڳي، انفرادي طبقن جي ملڪيتن کي صرف پڙهڻ لاءِ نشان لڳل هوندو هو، پر هاڻي توهان هڪ ئي وقت سڀني طبقي ملڪيتن لاءِ هن موڊ کي فعال ڪري سگهو ٿا. ڪلاس جي سطح تي "صرف پڙھڻ" جھنڊو بيان ڪرڻ پڻ ملڪيت کي ڪلاس ۾ متحرڪ طور شامل ٿيڻ کان روڪي ٿو. صرف پڙهڻ واري ڪلاس پوسٽ { عوامي فنڪشن __ تعمير (عوامي اسٽرنگ $ عنوان، عوامي ليکڪ $ ليکڪ، ) {} } $ پوسٽ = نئين پوسٽ (/* … */); $post->اڻڄاڻ = 'غلط'؛ // نقص: متحرڪ ملڪيت پيدا نه ٿي سگھي پوسٽ::$ نامعلوم
  • ڪلاس ۾ متحرڪ طور تي ملڪيت ٺاهڻ جي صلاحيت (جهڙوڪ مٿي ڏنل مثال ۾ "پوسٽ-> نامعلوم") کي ختم ڪيو ويو آهي. PHP 9.0 ۾، پراپرٽيز تائين رسائي جيڪي شروعاتي طور تي ڪلاس ۾ بيان نه ڪيون ويون آهن، نتيجي ۾ هڪ غلطي ٿيندي (ErrorException). ڪلاس جيڪي پراپرٽيز ٺاهڻ لاءِ __get ۽ __set طريقا مهيا ڪن ٿا، يا stdClass ۾ متحرڪ پراپرٽيز بغير تبديلين جي ڪم ڪنديون رهنديون، صرف غير موجود ملڪيتن سان لاڳاپيل ڪم کي سپورٽ ڪيو ويندو ته جيئن ڊولپر کي لڪيل بگن کان بچائي سگهجي. پراڻي ڪوڊ جي ڪم کي محفوظ ڪرڻ لاء، "#[AllowDynamicProperties]" خاصيت تجويز ڪيل آهي، متحرڪ ملڪيت جي استعمال جي اجازت ڏئي ٿي.
  • هڪ غلطي جي دوران اسٽيڪ ٽريس آئوٽ ۾ حساس پيٽرولر کي فلٽر ڪرڻ جي صلاحيت فراهم ڪري ٿي. ڪجهه معلومات کي ختم ڪرڻ ضروري ٿي سگھي ٿو جڏهن غلطين بابت معلومات خودڪار طور تي ٽئين پارٽي جي خدمتن ڏانهن موڪلي ويندي آهي جيڪي مسئلن کي ٽريڪ ڪن ٿا ۽ انهن بابت ڊولپرز کي ڄاڻ ڏين ٿيون. مثال طور، توھان خارج ڪري سگھوٿا پيرا ميٽرز جيڪي شامل آھن صارف نام، پاسورڊ، ۽ ماحوليات متغيرن کي ٽريڪ ڪرڻ کان. فنڪشن ٽيسٽ ($foo، #[\SensitiveParameter] $password، $baz) { اڇلايو نئون استثنا ('Error')؛ } ٽيسٽ ('foo'، 'پاسورڊ'، 'باز')؛ موتمار غلطي: اڻ ڄاتل استثنا: 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

تبصرو شامل ڪريو