Wat is PHP Null Coalescing? Wat en hoe wordt het gebruikt? Deze gaan we in deze les leren.

De PHP Null Coalescing-operator werd geïntroduceerd in PHP 7. De PHP Null Coalescing-operator maakt het voorwaardelijk toewijzen van gegevens mogelijk. Als de eerste operand bestaat en niet nul is, retourneert deze de eerste operand, anders retourneert deze de tweede operand.

PHP Null Coalescing-voorbeelden

// Örnek 1: 
echo $name = $_POST['name'] ?? 'nobody';
// Çıktı: nobody
// Örnek 1.1
if (isset($_POST['name'])) {
    echo $name = $_POST['name'];
} else {
    echo $name = 'nobody';
}
// Çıktı: nobody
// Örnek 1.2
echo $name = isset($_POST['name']) ? $_POST['name'] : 'nobody';
// Çıktı: nobody

Omdat er in voorbeeld 1 geen berichtgegevens met de naam naam waren, werd de waarde 'niemand' toegewezen aan de variabele $name en werd deze afgedrukt. Voorbeeld 1 is een verkorte versie van voorbeelden 1.1 en 1.2 met de PHP Null Coalescing-operator. Beide retourneren hetzelfde resultaat en hebben dezelfde betekenis.

// Örnek 2
$first_name = 'Onur';
$last_name = null;
echo ($first_name ?? 'Ad Yok') . ' ' . ($last_name ?? 'Soyad Yok');?> 
// Çıktı: Onur Soyad Yok

In voorbeeld 2 retourneerde de variabele $first_name gegevens in de eerste voorwaarde, omdat de variabele $first_name gegevens bevat. Omdat de variabele $achternaam echter nul was, retourneerde deze de tweede operand in de tweede voorwaarde en werd de zin 'Geen achternaam' afgedrukt.

PHP Null Coalescing Operator Chaining

We kunnen de PHP Null Coalescing-operator gebruiken door deze te koppelen.

// Örnek 3
echo $name = $_GET['name'] ?? $_POST['name'] ?? 'nobody';
// Çıktı: nobody
// Örnek 3.1
if (isset($_GET['name'])) {
    echo $name = $_GET['name'];
} elseif (isset($_POST['name'])) {
    echo $name = $_POST['name'];
} else {
    echo $name = 'nobody';
}
// Çıktı: nobody

In voorbeeld 3 wijst PHP de gegevens $_GET['naam'] toe aan de $name variabele en drukt deze af als $_GET['naam'] is gedefinieerd. Als het niet is gedefinieerd, controleer dan de variabele $_POST'name']. Als $_POST'name'] is gedefinieerd, worden de 'niemand'-gegevens verwijderd en afgedrukt. Als dit niet het geval is, worden de 'niemand'-gegevens verwijderd en afgedrukt. Voorbeeld 3.1 geeft hetzelfde resultaat als Voorbeeld 3 en heeft dezelfde betekenis. Voorbeeld 3.1 is een langere versie van Voorbeeld 3, gecodeerd met de voorwaardelijke instructie if-elseif-else. Voorbeeld 3 is een korte versie gecodeerd met PHP Null Coalescing.