Ka filluar testimi alfa i PHP 8.2

Është prezantuar publikimi i parë alfa i degës së re të gjuhës programuese PHP 8.2. Publikimi është planifikuar për 24 nëntor. Risitë kryesore tashmë të disponueshme për testim ose të planifikuara për zbatim në PHP 8.2:

  • Добавлены отдельные типы «false» и «null», которые могут использоваться, например, для возвращения функцией признака завершения с ошибкой или пустого значения. Ранее «false» и «null» могли использоваться только в связке с другими типами (например, «string|false»), а теперь могут применяться отдельно: function alwaysFalse(): false { return false; }
  • U shtua aftësia për të shënuar një klasë si vetëm për lexim. Vetitë në klasa të tilla mund të vendosen vetëm një herë, pas së cilës ato nuk mund të ndryshohen. Më parë, veçoritë individuale të klasës mund të shënoheshin vetëm për lexim, por tani mund ta aktivizoni këtë modalitet për të gjitha vetitë e klasës menjëherë. Specifikimi i flamurit "readonly" në nivelin e klasës gjithashtu bllokon pronat që të shtohen dinamikisht në klasë. klasë vetëm për lexim Post { funksion publik __construct( varg publik $title, publik Autor $autor, ) {} } $post = postim i ri(/* … */); $post->unknown = 'gabim'; // Gabim: Nuk mund të krijohet veti dinamike Postimi::$unknown
  • Объявлена устаревшей возможность динамического создания свойств в классе (как «post->unknown» в примере выше). В PHP 9.0 обращение к свойствам, изначально не определённым в классе, будет приводить к ошибке (ErrorException). Классы, предоставляющие методы __get и __set для создания свойств, или динамические свойства в stdClass продолжат работать без изменений, прекратится поддержка только неявной работы с несуществующими свойствами для того чтобы защитить разработчика от скрытых ошибок. Для сохранения работы старого кода предложен атрибут «#[AllowDynamicProperties]», разрешающий использование динамических свойств.
  • Ofron aftësinë për të filtruar parametrat e ndjeshëm në daljen e gjurmës së pirgut gjatë një gabimi. Prerja e informacionit të caktuar mund të jetë e nevojshme kur informacioni për gabimet që ndodhin dërgohet automatikisht te shërbimet e palëve të treta që gjurmojnë problemet dhe informojnë zhvilluesit për to. Për shembull, mund të përjashtoni parametrat që përfshijnë emrat e përdoruesve, fjalëkalimet dhe variablat e mjedisit nga gjurmimi. testi i funksionit( $foo, #[\SensitiveParameter] $password, $baz ) { hedh një Përjashtim të ri ('Gabim'); } test('foo', 'password', 'baz'); Gabim fatal: i pakapur Përjashtim: Gabim në test.php:8 Gjurmë e stivës: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} hedhur në test.php në linjën 8
  • Aftësia për të zëvendësuar vlerat e variablave në vargje duke përdorur shprehjet "${var}" dhe ${(var)} është zhvlerësuar. Mbështetja për zëvendësimet e përdorura zakonisht "{$var}" dhe "$var" është ruajtur. Për shembull: "Përshëndetje {$world}"; OK "Përshëndetje $world"; OK "Përshëndetje ${world}"; I vjetëruar: Përdorimi i ${} në vargje është i vjetëruar
  • Callables të mbështetura pjesërisht të vjetruara që mund të thirren nëpërmjet "call_user_func($callable)" por nuk mbështesin thirrjet në formën e "$callable()": "self::method" "parent::method" "static" ::method " ["vetë", "metodë"] ["prindër", "metodë"] ["statike", "metodë"] ["Foo", "Bar::metodë"] [Foo i ri, "Bar: :metodë" ]
  • U zbatua konvertimi i rastit të pavarur nga vendndodhja. Funksionet si strtolower() dhe strtoupper() tani gjithmonë konvertojnë rastin e karaktereve në intervalin ASCII sikur të vendoseshin në lokalitetin "C".

Burimi: opennet.ru

Shto një koment