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 PHP 8:
- , hvis anvendelse vil forbedre ydeevnen.
- 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 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 , der definerer samlinger af to eller flere typer (f.eks. «public function foo(Foo|Bar $input): int|float;»).
- Support (annoteringer), der muliggør binding af metadata (f.eks. typeoplysninger) til klasser uden brug af Docblock-syntax.
- Støtte til udtryk , 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",
}; - til klassedefinitioner, der muliggør kombineret definition af konstruktører og egenskaber.
- Ny returværdi-type — .
- Ny type — , som kan anvendes til at definere en funktion med parametre af forskellige typer.
- Udsagn til håndtering af undtagelser.
- til oprettelse af objekter, der kan ofres ved affaldssamling (f.eks. til opbevaring af valgfrie caches).
- for at bruge udtrykket «::class» for objekter (motsvarende kaldet get_class()).
- definitioner i catch-blokken af undtagelser, der ikke er knyttet til variabler.
- udlader komma-tegnet efter det sidste element i funktionsparameterlisten.
- Den nye grænseflade til identificering af alle strenge typer eller data, der kan konverteres til en streng (hvor metoden __toString() er tilgængelig).
- Ny funktion , 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 , der udfører en divisionsoperation uden at generere en fejl ved division med nul.
- 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)’.
- kontrol af aritmetiske og bitoperationer, f.eks. vil udtrykkene «[] % [42]» og «$object + 4» resultere i en fejl.
- en stabil sorteringsalgoritme, hvor rækkefølgen af ens værdier bevares ved forskellige kørseler.
Kilde: opennet.ru
