Betatesting av PHP 8 har begynt

Introdusert den første betaversjonen av den nye grenen av programmeringsspråket PHP 8. Utgivelsen er planlagt til 26. november. Samtidig vil korrigerende utgivelser av PHP 7.4.9, 7.3.21 og
7.2.33, som eliminerte akkumulerte feil og sårbarheter.

Den viktigste innovasjoner PHP 8:

  • inkludering JIT kompilator, hvis bruk vil forbedre produktiviteten.
  • Støtte navngitte funksjonsargumenter, som lar deg sende verdier til funksjonen i forhold til navn, dvs. Du kan sende argumenter i hvilken som helst rekkefølge og definere valgfrie argumenter. For eksempel "array_fill(start_index: 0, num: 100, value: 50)".
  • Når du ringer metoder lov ved å bruke "?"-operatøren, som lar deg starte et anrop bare hvis metoden er til stede, noe som unngår unødvendige kontroller for å returnere "null"-verdien. For eksempel, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • Støtte fagforeningstyper, som definerer samlinger av to eller flere typer (for eksempel "public function foo(Foo|Bar $input): int|float;").
  • Støtte attributter (merknader) som lar deg binde metadata (som typeinformasjon) til klasser uten å bruke Docblock-syntaks.
  • Uttrykksstøtte kamp, som, i motsetning til switch, kan returnere verdier, støtte kombineringsbetingelser, bruke strenge typesammenligninger og ikke krever en "pause"-spesifikasjon.

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

  • Forkortet syntaks klassedefinisjoner, slik at du kan kombinere definisjonen av en konstruktør og egenskaper.
  • Ny returtype - statisk.
  • Ny type - blandet, som kan brukes til å bestemme om en funksjon aksepterer parametere av forskjellige typer.
  • uttrykket kaste å håndtere unntak.
  • WeakMap å lage gjenstander som kan ofres under søppelhenting (for eksempel for å lagre unødvendige cacher).
  • Opportunity ved å bruke uttrykket "::class" for objekter (analogt med å kalle get_class()).
  • Opportunity definisjoner i fangstblokken av unntak som ikke er bundet til variabler.
  • Opportunity etterlate et komma etter det siste elementet i listen over funksjonsparametere.
  • Nytt grensesnitt Snorbar for å identifisere eventuelle strengtyper eller data som kan konverteres til en streng (som __toString()-metoden er tilgjengelig for).
  • Ny funksjon str_contains(), en forenklet analog av strpos for å bestemme forekomsten av en delstreng, samt funksjonene str_starts_with() og str_ends_with() for å sjekke treff på begynnelsen og slutten av en streng.
  • Lagt til funksjon fdiv(), som utfører en divisjonsoperasjon uten å kaste en feil ved deling på null.
  • Endret strengsammenføyningslogikk. For eksempel uttrykket 'ekko "sum:" . $a + $b' ble tidligere tolket som 'ekko ("sum: " . $a) + $b', og vil i PHP 8 bli behandlet som 'ekko "sum: " . ($a + $b)'.
  • Stramming kontrollere aritmetikk og bitoperasjoner, for eksempel, vil uttrykkene "[] % [42]" og "$objekt + 4" resultere i en feil.
  • Implementert en stabil sorteringsalgoritme der rekkefølgen av identiske verdier bevares på tvers av forskjellige kjøringer.
  • Kilde: opennet.ru

Legg til en kommentar