Gepubliceerd: 15.09.2023
PHP is nog steeds een van de meest gebruikte ontwikkelingstalen op het web en wordt nog met regelmaat vernieuwd en verbeterd. In november 2020 is PHP8 uitgekomen, deze versie kwam met prestatie verbetering en nieuwe features. PHP7 Support is gestopt in november 2022.
PHP8 is rijk aan nieuwe features. Ze zullen in dit artikel ook niet allemaal aan bod komen, maar een paar grote en interessante nieuwe features zal ik hier wel beschrijven.
“Named Arguments” zorgen ervoor dat je arguments door kan geven aan een functie door middel van parameter namen mee te geven met de value.
function greet(string $name, int $age) {
echo "Hello, $name! You are $age years old.";
}
Deze functie bevat 2 parameters en kan op verschillende manieren aangeroepen worden. Op deze manier geef je op volgorde alle parameters van de functie door:
greet("John Doe", 30);
Je kunt dit in PHP 8 ook op de volgende manier doen:
great(name=”John Doe”, age=30);
great(age=30, name=”John Doe”);
class MyClass {
private string $name;
private int $age;
__constructor(string $name, int $age) {
$this→name = $name;
$this→age = $age;
}
}
De properties worden boven in de class gedefinieerd en in de constructor toegewezen. In PHP8 kun je dit op de volgende manier doen:
class MyClass {
__constructor(private string $name, private int $age) {
}
}
Dit is hetzelfde resultaat, maar zoals je ziet met een stuk minder code.
/**
* @param string|null $parameter
*/
function my_function( $parameter ) { ... }
In PHP8 kun je meerdere types toevoegen voor een parameter:
function my_function( string|null $parameter ) { ... }
switch( $type ) {
case 'one':
$variable = “X”;
break;
case 'two':
$variable = “Y”;
break;
case 'three':
$variable = “Z”;
break;
}
In PHP8 is match geintroduceerd.
$variable = match( $type ) {
'one' => “X”,
'two' => “Y”,
'three' => “Z”,
}
Dit is een veel eenvoudigere en kortere manier om hetzelfde resultaat te bereiken.
if( null !== $user ) {
if( null !== $user->profile ) {
echo $user->profile->getAvatar();
}
}
Hetzelfde resultaat is nu te bereiken door:
echo $user?→profile?→getAvater();
Ook interessant