De bètatest van PHP 8 is begonnen

Geïntroduceerd de eerste bètaversie van de nieuwe versie van de programmeertaal PHP 8. De release staat gepland voor 26 november. Tegelijkertijd zijn correcties voor de versies PHP 7.4.9, 7.3.21 en
7.2.33 uitgebracht, waarin bestaande fouten en kwetsbaarheden zijn verholpen.

Belangrijkste vernieuwingen PHP 8:

  • Inschakeling van de JIT-compiler, waarvan het gebruik de prestaties zal verbeteren.
  • Ondersteuning genaamde functie-argumenten, waarmee waarden aan functies kunnen worden doorgegeven op basis van hun namen. Hierdoor kunnen argumenten in willekeurige volgorde worden doorgegeven en kunnen optionele argumenten worden gedefinieerd. Bijvoorbeeld, “array_fill(start_index: 0, num: 100, value: 50)”.
  • Bij het aanroepen van methoden is het toegestaan om de operator “?” te gebruiken, die het mogelijk maakt om de aanroep alleen te initiëren als de methode aanwezig is. Dit helpt onnodige controles op het retourneren van een waarde “null” te vermijden. Bijvoorbeeld, “$dateAsString = $booking->getStartDate()?->asDateTimeString()”;
  • Ondersteuning union-types, die collecties van twee of meer typen definiëren (bijvoorbeeld “public function foo(Foo|Bar $input): int|float;”).
  • Ondersteuning attributen (annotaties), waarmee metadata (bijvoorbeeld type-informatie) aan klassen kunnen worden gekoppeld zonder het gebruik van Docblock-syntaxis.
  • Ondersteuning voor expressies match, die in tegenstelling tot switch waarden kunnen retourneren, combinatie van voorwaarden ondersteunen, strikte typevergelijkingen gebruiken en geen “break” vereisen.

    $result = match($input) {
    0 => “hello”,
    ‘1’, ‘2’, ‘3’ => “world”,
    };

  • Afgekorte syntaxis voor de definitie van klassen, waarmee de definitie van de constructor en eigenschappen kan worden samengevoegd.
  • Een nieuw type retourwaarden — static.
  • Een nieuw type — mixed, dat kan worden gebruikt om een functie parameters van verschillende types te laten aannemen.
  • De uitdrukking throw voor het afhandelen van uitzonderingen.
  • WeakMap voor het maken van objecten die kunnen worden opgegeven bij garbage collection (bijvoorbeeld voor het opslaan van optionele caches).
  • Mogelijkheid gebruik van de expressie “::class” voor objecten (vergelijkbaar met de aanroep van get_class()).
  • Mogelijkheid de definitie in de catch-blok van uitzonderingen die niet aan variabelen zijn gebonden.
  • Mogelijkheid het achterlaten van een komma na het laatste element in de parameterlijst van een functie.
  • De nieuwe interface Stringable voor het identificeren van elke stringtype of gegevens die in een string kunnen worden omgezet (voor welke de methode __toString() beschikbaar is).
  • Nieuwe functie str_contains(), een vereenvoudigd alternatief voor strpos om het voorkomen van een substring te bepalen, en ook de functies str_starts_with() en str_ends_with() voor het controleren van overeenkomsten aan het begin en einde van een string.
  • De functie is toegevoegd fdiv(), voert de delingsoperatie uit zonder een foutmelding weer te geven in het geval van deling door nul.
  • Gewijzigd de logica voor het samenvoegen van strings. Bijvoorbeeld, de uitdrukking ‘echo «sum: » . $a + $b’ werd eerder geïnterpreteerd als ‘echo («sum: » . $a) + $b’, terwijl deze in PHP 8 zal worden behandeld als ‘echo «sum: » . ($a + $b)’.
  • Verscherpt de controle op wiskundige en bitbewerkingen, bijvoorbeeld de uitdrukkingen «[] % [42]» en «$object + 4» zullen een fout veroorzaken.
  • Geïmplementeerd stabiel sorteeralgoritme, waarin de volgorde van gelijke waarden behouden blijft bij verschillende uitvoeringen.
  • Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster