PHP lanceert versie 8: wat moet je weten?
Gepubliceerd: 26 november 2020
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.

Meer informatie: https://www.php.net/manual/en/migration80.incompatible.php#migration80.incompatible.core.string-number-comparision
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
Er zijn momenteel nog geen opmerkingen geplaatst onder deze blog.
Wil jij als eerste een bericht achter laten?