Ce este PHP Null Coalescing? Ce și cum se folosește? Acestea le vom învăța în această lecție.

Operatorul PHP Null Coalescing a fost introdus în PHP 7. Operatorul PHP Null Coalescing permite alocarea condiționată a datelor. Dacă primul operand există și nu este nul, returnează primul operand, în caz contrar returnează al doilea operand.

PHP Null Coalescing Exemple

// Ö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

În exemplul 1, deoarece nu existau date post numite nume, valoarea nimeni nu a fost atribuită variabilei $name și a fost tipărită. Exemplul 1 este o versiune prescurtată a exemplelor 1.1 și 1.2 cu operatorul PHP Null Coalescing. Ambele returnează același rezultat și poartă același sens.

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

În exemplul 2, deoarece variabila $first_name are date, a returnat variabila în prima condiție. Cu toate acestea, deoarece variabila $last_name a fost nulă, a returnat al doilea operand în a doua condiție și a tipărit propoziția „Fără prenume”.

PHP Null Coalescing Operator Chaining

Putem folosi operatorul PHP Null Coalescing prin lanțul acestuia.

// Ö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

În Exemplul 3, PHP atribuie datele $_GET['nume'] variabilei $name și le tipărește dacă $_GET['nume'] este definit. Dacă nu este definită, verificați variabila $_POST'name'], dacă $_POST'name'] este definită, aruncă și tipărește, dacă nu, aruncă și tipărește datele „nimeni”. Exemplul 3.1 returnează același rezultat ca și exemplul 3 și are aceeași semnificație. Exemplul 3.1 este o versiune mai lungă a Exemplului 3, codificată cu instrucțiunea condiționată if-elseif-else. Exemplul 3 este o versiune scurtă codificată cu PHP Null Coalescing.