PHP 8.2 alfatestimine on alanud

Esitleti esimene alfa vÀljalase uuele PHP 8.2 programmeerimiskeele harule. VÀljalase on kavandatud 24. novembriks. Peamised uuendused, mis on juba testimiseks saadaval vÔi kavas rakendada PHP 8.2-s:

  • Lisatud eraldi tĂŒĂŒbid «false» ja «null», mida saab kasutada nĂ€iteks funktsiooni tagastusvÀÀrtuse nĂ€itamiseks, kui see saavutab vea vĂ”i tĂŒhja vÀÀrtuse. Varasemalt vĂ”isid «false» ja «null» olla kasutusel ainult koos teiste tĂŒĂŒpidega (nĂ€iteks «string|false»), kuid nĂŒĂŒd saab neid kasutada eraldi: function alwaysFalse(): false { return false; }
  • Lisatud vĂ”imalus tĂ€histada klass ainult lugemisena. Sarnastes klassides saab omadusi mÀÀrata ainult ĂŒks kord, pĂ€rast mida need ei ole enam muudetavad. Varasemalt vĂ”isid ainult eraldi omadused olla tĂ€histatud lugemisena, kuid nĂŒĂŒd saab seda reĆŸiimi korraga rakendada kĂ”ikidele klassi omadustele. „readonly“ lipu mÀÀramine klassi tasemel blokeerib ka dĂŒnaamilise omaduste lisamise klassile. readonly class Post { public function __construct( public string $title, public Author $author, ) {} } $post = new Post(/* 
 */); $post->unknown = ‘wrong’; // Viga: DĂŒnaamilise omaduse loomine ebaĂ”nnestus Post::$unknown
  • DĂŒnaamiliste omaduste loomise vĂ”imalus klassis (nagu «post->unknown» ĂŒlaltoodud nĂ€ites) kuulutati vananenuks. PHP 9.0-s toob algselt klassis mÀÀramata omaduste juurde pÀÀsemine kaasa vea (ErrorException). Klassid, mis pakuvad meetodeid __get ja __set omaduste loomiseks vĂ”i dĂŒnaamilised omadused stdClass-is, jĂ€tkavad töökindlat toimimist ilma muudatusteta, lĂ”petatakse ainult varjatud omadustega tegelemise tugi, et kaitsta arendajat peidetud vigade eest. Olemasoleva koodi töötamise sĂ€ilitamiseks on ette nĂ€htud atribuut „#[AllowDynamicProperties]“, mis lubab kasutada dĂŒnaamilisi omadusi.
  • KĂ€ideldud on vĂ”imalus filtreerida konfidentsiaalsed parameetrid virnastuste jĂ€lgimisdatasetis, mis vĂ€ljastatakse vea korral. Teatud teabe eemaldamine vĂ”ib olla vajalik, kui veateateid saadetakse automaatselt kolmandatele osapooltele, kes jĂ€lgivad probleeme ja teavitavad neist arendajaid. NĂ€iteks vĂ”ib jĂ€lgimisest vĂ€listada parameetrid, 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
  • Hoole alla on vĂ”etud vananenud vĂ”imalus, kus muutujaid saab stringides asendada vĂ€ljendite kaudu «${var}» ja ${(var)}». Tavalised asendused «{$var}» ja «$var» on endiselt toetatud. NĂ€iteks: «Hello {$world}»; OK «Hello $world»; OK «Hello ${world}»; Deprecated: Using ${} in strings is deprecated
  • Vananenud on osaliselt toetatud kutsutavad objektid (callable), mis saab kutsuda lĂ€bi «call_user_func($callable)», kuid ei toeta kutsumist kujul «$callable()»: «self::method» «parent::method» «static::method» [«self», «method»] [«parent», «method»] [«static», «method»] [«Foo», «Bar::method»] [new Foo, «Bar::method»]
  • Rakendatud on locale-st sĂ”ltumatu tĂ€hemĂ€rkide suuruste muutmine. Funktsioonid, nagu strtolower() ja strtoupper(), muudavad nĂŒĂŒd tĂ€hemĂ€rkide suuruse ASCII vahemikus alati, sĂ”ltumata seadistatud locale'ist «C».

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster