Betatests af PHP 8 er begyndt

Præsenteret den første betaudgivelse af den nye version af programmeringssproget PHP 8. Udgivelsen er planlagt til den 26. november. Samtidig er der lavet korrigerende udgivelser af PHP 7.4.9, 7.3.21 og
7.2.33, hvor de akkumulerede fejl og sårbarheder er blevet rettet.

Vigtige nyheder PHP 8:

  • Aktivering af JIT-kompiler, hvis anvendelse vil forbedre ydeevnen.
  • Support navngivne argumenter i funktioner, der gør det muligt at overføre værdier til funktionen knyttet til navne, dvs. det er muligt at overføre argumenter i vilkårlig rækkefølge og definere valgfrie argumenter. For eksempel, "array_fill(start_index: 0, num: 100, value: 50)".
  • Ved opkald af metoder at udføre ZBC-kommandoer. anvendelsen af operatoren "?", der gør det muligt kun at initiere opkaldet, hvis metoden er til stede, hvilket undgår unødvendige tjek for værdien "null". For eksempel, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • Support union-typer, der definerer samlinger af to eller flere typer (f.eks. «public function foo(Foo|Bar $input): int|float;»).
  • Support attributter (annoteringer), der muliggør binding af metadata (f.eks. typeoplysninger) til klasser uden brug af Docblock-syntax.
  • Støtte til udtryk match, som i modsætning til switch kan returnere værdier, understøtter kombination af betingelser, bruger streng type-sammenligning og kræver ikke angivelse af "break".

    $result = match($input) {
    0 => "hello",
    '1', '2', '3' => "world",
    };

  • Forkortet syntaks til klassedefinitioner, der muliggør kombineret definition af konstruktører og egenskaber.
  • Ny returværdi-type — static.
  • Ny type — mixed, som kan anvendes til at definere en funktion med parametre af forskellige typer.
  • Udsagn throw til håndtering af undtagelser.
  • WeakMap til oprettelse af objekter, der kan ofres ved affaldssamling (f.eks. til opbevaring af valgfrie caches).
  • Mulighed for at bruge udtrykket «::class» for objekter (motsvarende kaldet get_class()).
  • Mulighed definitioner i catch-blokken af undtagelser, der ikke er knyttet til variabler.
  • Mulighed udlader komma-tegnet efter det sidste element i funktionsparameterlisten.
  • Den nye grænseflade Stringable til identificering af alle strenge typer eller data, der kan konverteres til en streng (hvor metoden __toString() er tilgængelig).
  • Ny funktion str_contains(), en forenklet version af strpos til at bestemme tilstedeværelsen af en delstreng samt funktionerne str_starts_with() og str_ends_with() til at tjekke for match i begyndelsen og slutningen af strengen.
  • Tilføjet en funktion fdiv(), der udfører en divisionsoperation uden at generere en fejl ved division med nul.
  • Ændret logik for sammensætning af strenge. For eksempel blev udtrykket ‘echo «sum: » . $a + $b’ tidligere fortolket som ‘echo («sum: » . $a) + $b’, men i PHP 8 vil det blive behandlet som ‘echo «sum: » . ($a + $b)’.
  • Forstærket kontrol af aritmetiske og bitoperationer, f.eks. vil udtrykkene «[] % [42]» og «$object + 4» resultere i en fejl.
  • Implementeret en stabil sorteringsalgoritme, hvor rækkefølgen af ens værdier bevares ved forskellige kørseler.
  • 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