PHP 8.2 alfa-testimine on alanud

Esitleti PHP 8.2 programmeerimiskeele uue haru esimene alfa-vÀljaanne. VÀljaanne on planeeritud 24. novembriks. PHP 8.2 peamised uuendused, mis on juba testimiseks saadaval vÔi mille rakendamine on plaanitud:

  • Lisatud eraldi tĂŒĂŒbid „false” ja „null”, mida saab kasutada nĂ€iteks funktsiooni kaudu veateate vĂ”i tĂŒhja vÀÀrtuse tagastamiseks. Varem vĂ”isid „false” ja „null” olla kasutuses ainult koos teiste tĂŒĂŒpidega (nt „string|false”), nĂŒĂŒd saab neid kasutada eraldi: function alwaysFalse(): false { return false; }
  • On lisatud vĂ”imalus mĂ€rkida klass ainult lugemiseks. Sellistes klassides saab omadusi mÀÀrata ainult ĂŒks kord, pĂ€rast mida ei ole neid vĂ”imalik muuta. Varem sai ainult eraldi omadusi klassist mĂ€rkida ainult lugemiseks, nĂŒĂŒd on see reĆŸiim vĂ”imalik rakendada kĂ”igile klassi omadustele korraga. Klassi tasemel 'readonly' lipu mÀÀramine blokeerib ka omaduste dĂŒnaamilise lisamise klassi. readonly class Post { public function __construct( public string $title, public Author $author, ) {} } $post = new Post(/* 
 */); $post->unknown = ‘wrong’; // Viga: Ei saa luua dĂŒnaamilist omadust Post::$unknown
  • DĂŒnaamilise omaduste loomise vĂ”imalus klassis on tunnistatud vananenuks (nt „post->unknown” ĂŒlaltoodud nĂ€ites). PHP 9.0-s pĂ”hjustab klassis algselt mÀÀratlemata omadustele juurdepÀÀs vea (ErrorException). Klassid, mis pakuvad meetodeid __get ja __set omaduste loomiseks, vĂ”i dĂŒnaamilised omadused stdClass-is jĂ€tkavad tööd muutumatult, kaotatakse tugi ainult varjatud omadustega töötamiseks, et kaitsta arendajat varjatud vigade eest. Vanade koodide töös hoidmiseks on ette nĂ€htud atribuut „#[AllowDynamicProperties]”, mis lubab dĂŒnaamiliste omaduste kasutamist.
  • Antud on vĂ”imalus filtreerida konfidentsiaalset teavet virnastuse andmetes, mis vĂ€ljastatakse vea korral. Teatud teabe vĂ€ljalĂ”ikamine vĂ”ib olla vajalik, kui teave esinevate vigade kohta saadetakse automaatselt kolmandate osapoolte teenustele, mis jĂ€lgivad probleeme ja teavitavad sellest arendajaid. NĂ€iteks saab virnastusest vĂ€lja jĂ€tta parameetreid, mis sisaldavad kasutajanimesid, paroole ja keskkonnamuutujaid. function test( $foo, #[\SensitiveParameter] $password, $baz ) { throw new Exception('Error'); } test('foo', 'password', 'baz'); Fatal error: Uncaught Exception: Error in test.php:8 Stack trace: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} thrown in test.php on line 8
  • MÀÀratud on aegunud variandi toimetamine, kus muutujaid on vĂ”imalik stringidesse sisestada vĂ€ljendite abil '`${var}`' ja '${(var)}'. Tavaliste asenduste '${var}' ja '$var' tugi on sĂ€ilinud. NĂ€iteks: 'Hello {$world}'; OK 'Hello $world'; OK 'Hello ${world}'; Aegunud: `${}` kasutamine stringides on aegunud
  • Aegunud on osaliselt toetatud kutsutavad objektid (callable), mida on vĂ”imalik kutsuda lĂ€bi 'call_user_func($callable)', kuid mis ei toeta kutset vormis '$callable()': 'self::method' 'parent::method' 'static::method' [‘self’, ‘method’] [‘parent’, ‘method’] [‘static’, ‘method’] [‘Foo’, ‘Bar::method’] [new Foo, ‘Bar::method’]
  • On iseseisev tĂ€histust muudeti. Funktsioonid, nagu strtolower() ja strtoupper(), muudetakse nĂŒĂŒd alati tĂ€histuse vahemikus ASCII, kui mÀÀratakse tĂ€histuseks "C".

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster