Alfa-testningen av PHP 8.2 har inletts

Den första alfa-versionen av den nya grenen av programmeringssprÄket PHP 8.2 har presenterats. UtgÄvan Àr planerad till den 24 november. De viktigaste nyheterna, som redan Àr tillgÀngliga för testning eller planeras att implementeras i PHP 8.2:

  • Separata typer för "false" och "null" har lagts till, som kan anvĂ€ndas för att returnera ett felmeddelande eller ett tomt vĂ€rde frĂ„n en funktion. Tidigare kunde "false" och "null" endast anvĂ€ndas i kombination med andra typer (till exempel "string|false"), men nu kan de anvĂ€ndas separat: function alwaysFalse(): false { return false; }
  • Det har lagts till möjlighet att markera en klass som endast lĂ€sbar. Egenskaper i sĂ„dana klasser kan bara sĂ€ttas en gĂ„ng och kommer sedan inte att kunna Ă€ndras. Tidigare kunde endast enskilda klassattribut markeras som endast lĂ€sbara, men nu kan detta lĂ€gen aktiveras för alla klassens egenskaper pĂ„ en gĂ„ng. Att ange "readonly"-flaggan pĂ„ klassnivĂ„ blockerar ocksĂ„ dynamisk tillĂ€ggning av egenskaper till klassen. readonly class Post { public function __construct( public string $title, public Author $author, ) {} } $post = new Post(/* 
 */); $post->unknown = ‘wrong’; // Fel: Kan inte skapa dynamisk egenskap Post::$unknown
  • Möjligheten att dynamiskt skapa egenskaper i klassen har förklarats som förĂ„ldrad (som "post->unknown" i exemplet ovan). I PHP 9.0 kommer försök att komma Ă„t egenskaper som inte ursprungligen har definierats i klassen att resultera i ett fel (ErrorException). Klasser som tillhandahĂ„ller metoderna __get och __set för att skapa egenskaper, eller dynamiska egenskaper i stdClass kommer fortsatt att fungera utan Ă€ndringar, men det kommer att upphöra att stödja implicit arbete med icke-existerande egenskaper för att skydda utvecklaren frĂ„n dolda fel. För att bevara funktionaliteten i gammal kod har attributet "#[AllowDynamicProperties]" föreslagits, vilket tillĂ„ter anvĂ€ndning av dynamiska egenskaper.
  • Möjlighet till filtrering av konfidentiella parametrar i stackspĂ„rningsdata som skrivs ut vid fel. Uteslutning av viss information kan krĂ€vas nĂ€r information om uppkomna fel automatiskt skickas till externa tjĂ€nster som spĂ„rar problem och informerar utvecklarna. Till exempel kan parametrar som innehĂ„ller anvĂ€ndarnamn, lösenord och miljövariabler uteslutas frĂ„n spĂ„rningen. 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öjligheten att anvĂ€nda variabelersĂ€ttning i strĂ€ngar med uttrycken «${var}» och ${(var)}» har förklarats som avvecklad. Stöd för de vanligen anvĂ€nda ersĂ€ttningarna «{$var}» och «$var» kvarstĂ„r. Till exempel: «Hello {$world}»; OK «Hello $world»; OK «Hello ${world}»; Deprecated: Using ${} in strings is deprecated
  • Delvis stödda anropbara objekt (callable) som kan anropas via «call_user_func($callable)» men som inte stödjer anrop i form av «$callable()» har förklarats som avvecklade: «self::method» «parent::method» «static::method» [«self», «method»] [«parent», «method»] [«static», «method»] [«Foo», «Bar::method»] [new Foo, «Bar::method»]
  • Kulturoberoende konvertering av teckenstorlek har implementerats. Funktioner som strtolower() och strtoupper() konverterar nu alltid teckenstorleken i ASCII-intervallet likt nĂ€r kulturen Ă€r instĂ€lld pĂ„ «C».

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster