Betatestning av PHP 8 har börjat

Introducerad den första betaversionen av den nya grenen av programmeringsspråket PHP 8. Releasen är planerad till den 26 november. Samtidigt kommer korrigerande utgåvor av PHP 7.4.9, 7.3.21 och
7.2.33, som eliminerade ackumulerade fel och sårbarheter.

Den huvudsakliga innovationer PHP 8:

  • integration JIT-kompilator, vars användning kommer att förbättra produktiviteten.
  • Support namngivna funktionsargument, så att du kan skicka värden till funktionen i förhållande till namn, dvs. Du kan skicka argument i valfri ordning och definiera valfria argument. Till exempel "array_fill(start_index: 0, num: 100, värde: 50)".
  • När du anropar metoder tillåtet med "?"-operatören, som gör att du bara kan initiera ett samtal om metoden finns, vilket undviker onödiga kontroller för att returnera "null"-värdet. Till exempel, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • Support fackliga typer, definierar samlingar av två eller flera typer (till exempel "public function foo(Foo|Bar $input): int|float;").
  • Support attribut (kommentarer) som låter dig binda metadata (som typinformation) till klasser utan att använda Docblock-syntax.
  • Uttrycksstöd matcha, som, till skillnad från switch, kan returnera värden, stödja kombinationsvillkor, använda strikta typjämförelser och inte kräver en "paus"-specifikation.

    $result = match($input) {
    0 => "hej",
    '1', '2', '3' => "värld",
    };

  • Förkortad syntax klassdefinitioner, så att du kan kombinera definitionen av en konstruktor och egenskaper.
  • Ny returtyp - statisk.
  • Ny typ - blandad, som kan användas för att avgöra om en funktion accepterar parametrar av olika typer.
  • uttryck kasta att hantera undantag.
  • WeakMap att skapa föremål som kan offras under sophämtning (till exempel för att lagra onödiga cacher).
  • Möjlighet använder uttrycket "::class" för objekt (analogt med att anropa get_class()).
  • Möjlighet definitioner i fångstblocket av undantag som inte är bundna till variabler.
  • Möjlighet lämnar ett kommatecken efter det sista elementet i listan med funktionsparametrar.
  • Nytt gränssnitt Strängbar för att identifiera alla strängtyper eller data som kan konverteras till en sträng (för vilken metoden __toString() är tillgänglig).
  • Ny funktion str_contains(), en förenklad analog av strpos för att bestämma förekomsten av en delsträng, samt funktionerna str_starts_with() och str_ends_with() för att kontrollera matchningar i början och slutet av en sträng.
  • Funktion tillagd fdiv(), som utför en divisionsoperation utan att kasta ett fel när man dividerar med noll.
  • Ändrats strängfogningslogik. Till exempel uttrycket 'echo "summa:" . $a + $b' tolkades tidigare som 'echo ("summa: " . $a) + $b', och kommer i PHP 8 att behandlas som 'eko "summa: ". ($a + $b)'.
  • Åtdragna kontroll av aritmetiska och bitoperationer, till exempel, kommer uttrycken "[] ​​% [42]" och "$objekt + 4" att resultera i ett fel.
  • Genomfört en stabil sorteringsalgoritm där ordningen av identiska värden bevaras över olika körningar.
  • Källa: opennet.ru

Lägg en kommentar