PHP 7 & 8

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.

Aantal nieuwe features

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

“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”);
  

Constructor Property Promotion

Wanneer je in PHP een class maakt en properties wilt doorgeven via de constructor deed je dat voor PHP8 op deze manier:

  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.

Union Types

Wanneer je in PHP7 een variable meerdere types wilde toekennen, bijvoorbeeld een string of null, dan moest je gebruik maken van de annotations:

  /**
  * @param string|null $parameter
  */
  function my_function( $parameter ) { ... }

In PHP8 kun je meerdere types toevoegen voor een parameter:

function my_function( string|null $parameter ) { ... }

Match Expression


  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.

Nullsafe Operators

Voorheen moest je in PHP bij elke stap van je proces controleren of een variable null was of niet. De zorgt voor veel lijnen en veel code:

  if( null !== $user ) {
    if( null !== $user->profile ) {
      echo $user->profile->getAvatar();
    }
  }

Hetzelfde resultaat is nu te bereiken door:

  echo $user?→profile?→getAvater();

Prestaties

PHP8 is weer net iets sneller dan PHP7. Bij elke update van de versie wordt de prestatie van PHP verbeterd. Het verschil tussen 7 en 8 is niet zo groot als tussen bijvoorbeeld versie 5 en 7.

Symfony
Laatste stabiele versie 6.3

Symfony is een open-source PHP framework. Dit framework is in het leven geroepen om op een snelle en eenvoudige manier, complexe PHP applicaties kunt ontwikkelen.

Lees meer over Symfony Symfony website
PHP
Laatste stabiele versie 8.2

PHP biedt je alles wat je nodig hebt voor je website of platform. Databases, blogs, business software, webshops, etc.

Lees meer over PHP PHP website
4bis logo
4BIS Innovations B.V.

PHPNederland is partner van 4BIS Innovations.

4BIS is ervaren in het ontwikkelen van business software in PHP, hierbij wordt voornamelijk gebruik gemaakt van Symfony.