Nieuw in PHP 7 is de Null Coalesce operator. In dit artikel lees je hier meer over.

De Null Coalesce operator maakt het gemakkelijker om een standaardwaarde mee te geven in een vergelijking. In vergelijking met de Ternary operator is de Null Coalesce operator eenvoudiger in gebruik en leesbaar. In PHP wordt de Null Coalesce operator geschreven als: ??

Null Coalesce operator

The coalesce, or ??, operator returns the result of its first operand if it exists and is not NULL, or else its second operand.

Null Coalesce versus Ternary operator

De Ternary operator (?:) uit PHP 5.x kan er als volgt uitzien (syntaxis):

$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];

// of verkort, sinds PHP 5.3:
$action = $_POST['action'] ?: 'default';

en is hetzelfde als:

if (empty($_POST['action'])) {
  $action = 'default';
} else {
  $action = $_POST['action'];
}

In PHP 7 kunnen we dit herschrijven naar:

$action = $_POST['action'] ?? 'default';

Veel korter en duidelijker zoals je ziet.

Een punt van aandacht is wel dat de Ternary operator (?:) opereert op waarden die FALSE teruggeven, de Null Coalesce operator (??) op NULL. Niet rampzalig daar de Ternary operator door velen als gebrekkig wordt ervaren. De Ternary operator geeft een E_NOTICE als de waarde niet bestaat.

Je leest meer over deze operator in het voorstel om deze operator aan PHP toe te voegen: https://wiki.php.net/rfc/isset_ternary.

Wat vond je van dit antwoord?

Bedankt voor je feedback!

Er is een fout opgetreden. Probeer het later opnieuw.