PHP lanceert versie 8: wat moet je weten?

Gepubliceerd: 26 november 2020

Alex Lisenkov

Developer

PHP lanceert op 26 november 2020 versie 8.0 voor General Release, hierdoor kan deze versie officieel in werking gesteld worden. Dit betekent meer rekenkracht door de nieuwe JIT-compiler, uitgebreidere typing, attributes, nieuwe functies en handigheden om je code schoon te houden. Wat je moet weten voordat je deze versie gaat gebruiken lees je hier.

Nieuwe features

  • Attributes
  • Named arguments
  • Nullsafe operator
  • Trailing comma in closures & parameter lists
  • "match" expression
  • Verkorte syntax voor constructor properties
  • Non-capturing exceptions
  • "mixed" type
  • str_starts_with, str_ends_with en str_contains
  • throw as an expression
  • Trait signature validatie
  • Stringable interface
  • ::class op een class-instantie
  • static return type
  • union types
  • WeakMaps
  • JIT Compiler

JIT Compiler

De JIT-compiler brengt een aantal optimalisaties met zich mee, maar zorgt dit ook voor hogere laadsnelheden? Niet per se, afhankelijk van de applicatie kan het sneller zijn. JIT kan stukken code compilen en cachen waardoor stukken code sneller kunnen worden uitgevoerd, maar moeten dus wel eerst gecompiled worden. Voor algoritmes dat vaak dezelfde logica uitvoerd kan dit dus winst opleveren. Echter is PHP vooral sterk geweest in request/response webpagina's, denk bijvoorbeeld aan een WordPress-site. Deze sites doen vaak een query op een MySQL database en renderen een HTML-pagina. Voor zulke websites kan het zijn dat JIT door de overhead juist vertraging veroorzaakt. JIT kan je aan- of uitzetten en kan op verschillende manieren geconfigureerd worden. Meer informatie: https://wiki.php.net/rfc/jit

Non-strict comparison

In PHP8 is de manier hoe strings met numbers worden vergeleken veranderd. De vergelijking tussen numeric strings ("0") en numbers (0) is hetzelfde gebleven, maar de vergelijking tussen "0foo" en 0 is nu false.

String & number comparison in PHP 8
String met number vergelijken in PHP 8

Attributes

Als je wel eens in Symfony hebt gewerkt ken je het waarschijnlijk wel: annotations. Attributes is er om annotations op een native manier op te lossen. Samen met return en property types hoeven we geen docblocks te gebruiken om een method signature te definieren. Alles over attributes: https://wiki.php.net/rfc/attributes_v2

Verder lezen

Upgraden en migreren

Alle changes op een rij

Blog: Zes opmerkelijke features

Opmerkingen

Er zijn momenteel nog geen opmerkingen geplaatst onder deze blog.
Wil jij als eerste een bericht achter laten?

Laat een bericht achter
Aantal tekens:0 / 500

Beveiligd met reCAPTCHA.PrivacyVoorwaarden