Alpha-testningen af PHP 8.2 er begyndt

Den første alpha-version af den nye version af programmeringssproget PHP 8.2 er præsenteret. Udgivelsen er planlagt til den 24. november. De vigtigste nye funktioner, som allerede er tilgængelige til test eller planlægges at blive implementeret i PHP 8.2:

  • Der er tilføjet separate typer "false" og "null", som for eksempel kan bruges til at returnere et fejlsignal fra en funktion eller et tomt værdi. Tidligere kunne "false" og "null" kun bruges sammen med andre typer (for eksempel "string|false"), men nu kan de anvendes separat: function alwaysFalse(): false { return false; }
  • Der er tilføjet mulighed for at markere en klasse som kun læsbar. Egenskaber i sådanne klasser kan kun angives én gang, hvorefter de ikke vil være tilgængelige for ændringer. Tidligere kunne kun individuelle egenskaber i klassen markeres som kun læsbare, men nu kan denne tilstand aktivere for alle egenskaber i klassen på én gang. Angivelse af flaget "readonly" på klasseniveau forhindrer også dynamisk tilføjelse af egenskaber til klassen. readonly class Post { public function __construct( public string $title, public Author $author, ) {} } $post = new Post(/* … */); $post->unknown = ‘wrong’; // Error: Cannot create dynamic property Post::$unknown
  • Muligheden for dynamisk at oprette egenskaber i klassen (som "post->unknown" i eksemplet ovenfor) er erklæret forældet. I PHP 9.0 vil adgang til egenskaber, der oprindeligt ikke er defineret i klassen, føre til en fejl (ErrorException). Klasser, der leverer metoderne __get og __set til at oprette egenskaber, eller dynamiske egenskaber i stdClass vil fortsætte med at fungere uden ændringer, mens den implicitte adfærd med ikke-eksisterende egenskaber vil blive fjernet for at beskytte udvikleren mod skjulte fejl. For at bevare funktionen af gammel kode er attributten "#[AllowDynamicProperties]" foreslået, som tillader brugen af dynamiske egenskaber.
  • Muligheden for at filtrere følsomme parametre i staktrace-data, der genereres under fejl, er blevet introduceret. Udelukkelse af bestemte oplysninger kan være nødvendig, når oplysninger om opståede fejl automatisk sendes til tredjeparts tjenester, der overvåger problemer og informerer udviklere om dem. For eksempel kan man udelukke parametre, der indeholder brugernavne, koder og miljøvariabler. function test( $foo, #[\SensitiveParameter] $password, $baz ) { throw new Exception(‘Fejl’); } test(‘foo’, ‘kode’, ‘baz’); Fatal error: Uncaught Exception: Fejl in test.php:8 Stack trace: #0 test.php(11): test(‘foo’, Object(SensitiveParameterValue), ‘baz’) #1 {main} thrown in test.php on line 8
  • Brugen af variabelsubstitution i strenge via udtryk som «${var}» og ${(var)}» er blevet erklæret som forældet. Understøttelse af de almindeligt anvendte substitutioner «{$var}» og «$var» er bevaret. For eksempel: «Hej {$world}»; OK «Hej $world»; OK «Hej ${world}»; Forældret: Brug af ${} i strenge er forældet.
  • Delvist understøttede kaldbare objekter (callable), der kan kaldes via «call_user_func($callable)», men ikke understøtter kald i formen «$callable()», er blevet erklæret som forældede: «self::method» «parent::method» «static::method» [«self», «method»] [«parent», «method»] [«static», «method»] [«Foo», «Bar::method»] [new Foo, «Bar::method»]
  • Landsuafhængig konvertering af tegnregistret er blevet implementeret. Funktioner som strtolower() og strtoupper() konverterer nu altid tegneskift til ASCII-området, uanset den angivne lokation «C».

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster