Ir sākusies PHP 8.2 alfa testēŔana

Ir prezentēts pirmais PHP 8.2 programmēŔanas valodas jaunās atzara alfa laidiens. IznākÅ”ana paredzēta 24. novembrÄ«. Galvenie jauninājumi, kas jau ir pieejami testēŔanai vai plānoti ievieÅ”anai PHP 8.2 versijā:

  • Pievienoti atseviŔķi veidi ā€œfalseā€ un ā€œnullā€, kurus var izmantot, piemēram, funkcijai, lai atgrieztu kļūdas beigu karogu vai tukÅ”u vērtÄ«bu. IepriekÅ” ā€œfalseā€ un ā€œnullā€ varēja lietot tikai kopā ar citiem veidiem (piemēram, ā€œstring|falseā€), bet tagad tos var lietot atseviŔķi: function alwaysFalse(): false { return false; }
  • Pievienota iespēja atzÄ«mēt klasi kā tikai lasāmu. RekvizÄ«tus Ŕādās klasēs var iestatÄ«t tikai vienu reizi, pēc tam tos nevar mainÄ«t. IepriekÅ” atseviŔķus klases rekvizÄ«tus varēja atzÄ«mēt kā tikai lasāmus, taču tagad Å”o režīmu varat iespējot visiem klases rekvizÄ«tiem vienlaikus. Norādot karodziņu "tikai lasāms" klases lÄ«menÄ«, tiek bloķēta rekvizÄ«tu dinamiska pievienoÅ”ana klasei. readonly class Post { public function __construct( public string $nosaukums, public Author $author, ) {} } $post = new Post(/* … */); $post->unknown = 'nepareizi'; // Kļūda: nevar izveidot dinamisku rekvizÄ«tu Post::$unknown
  • Iespēja dinamiski izveidot rekvizÄ«tus klasē (piemēram, "post->unknown" iepriekÅ” minētajā piemērā) ir novecojusi. PHP 9.0, piekļūstot rekvizÄ«tiem, kas klasē sākotnēji nav definēti, radÄ«s kļūdu (ErrorException). Klases, kas nodroÅ”ina __get un __set metodes rekvizÄ«tu izveidei vai dinamiskos rekvizÄ«tus programmā stdClass, turpinās darboties bez izmaiņām, tiks atbalstÄ«ts tikai netieÅ”s darbs ar neesoÅ”iem rekvizÄ«tiem, lai aizsargātu izstrādātāju no slēptām kļūdām. Lai saglabātu vecā koda darbÄ«bu, tiek piedāvāts atribÅ«ts ā€œ#[AllowDynamicProperties]ā€, kas ļauj izmantot dinamiskos rekvizÄ«tus.
  • NodroÅ”ina iespēju kļūdas laikā filtrēt sensitÄ«vus parametrus steka izsekoÅ”anas izvadē. Noteiktas informācijas izgrieÅ”ana var bÅ«t nepiecieÅ”ama, ja informācija par kļūdām tiek automātiski nosÅ«tÄ«ta treÅ”o puÅ”u pakalpojumiem, kas izseko problēmas un informē par tām izstrādātājus. Piemēram, varat izslēgt no izsekoÅ”anas parametrus, kas ietver lietotājvārdus, paroles un vides mainÄ«gos. funkciju tests( $foo, #[\SensitiveParameter] $password, $baz ) { throw new Exception('Error'); } test('foo', 'parole', 'baz'); Fatāla kļūda: nenoÄ·erts Izņēmums: kļūda test.php: 8. Steka izsekoÅ”ana: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} iemests test.php 8. rindā
  • Iespēja aizstāt mainÄ«go vērtÄ«bas virknēs, izmantojot izteicienus "${var}" un ${(var)}, ir novecojusi. Atbalsts bieži lietotajiem "{$var}" un "$var" aizstājumiem ir saglabāts. Piemēram: "Sveiki, {$world}"; OK "Sveika $world"; Labi "Sveiki, ${world}"; Novecojis: ${} izmantoÅ”ana virknēs ir novecojusi
  • NovecojuÅ”i daļēji atbalstÄ«tie izsaucamie vienumi, kurus var izsaukt, izmantojot "call_user_func($callable)", bet neatbalsta izsaukÅ”anu formā "$callable()": "self::method" "parent::method" "static" ::method " ["self", "method"] ["parent", "method"] ["static", "method"] ["Foo", "Bar::method"] [jauns Foo, "Bar: :method" ]
  • Ieviesta no lokalizācijas neatkarÄ«ga reÄ£istra konvertēŔana. Tādas funkcijas kā strtolower() un strtoupper() tagad vienmēr pārveido rakstzÄ«mju reÄ£istru ASCII diapazonā tā, it kā tās bÅ«tu iestatÄ«tas uz "C" lokalizāciju.

Avots: opennet.ru

Iegādājieties uzticamu mitināŔanu vietnēm ar DDoS aizsardzÄ«bu, VPS VDS serveriem šŸ”„ Iegādājieties uzticamu tÄ«mekļa vietņu mitināŔanu ar DDoS aizsardzÄ«bu, VPS VDS serveriem | ProHoster