Menu
Coddy logo textTech

Null Coalescing Operator

Coddy'nin PHP Journey'sinin Temeller bölümünün bir parçası. Ders 31 / 71.

Null coalescing operatörü (??), bir variable null olduğunda veya var olmadığında bir default değer kullanmak için pratik bir yol sağlar. Bu, özellikle eksik olabilecek verilerle çalışırken yararlıdır.

Sözdizimi, kontrol edilecek variable ile alternatif değer arasına ?? yerleştirir:

<?php
$username = null;

$displayName = $username ?? "Guest";
echo $displayName; // Misafir
?>

PHP, $username değişkeninin null olup olmadığını kontrol eder. Öyle olduğu için, operatör bunun yerine "Guest" döndürür. Eğer $username bir değere sahip olsaydı, o değer kullanılırdı.

<?php
$username = "Alice";

$displayName = $username ?? "Guest";
echo $displayName; // Alice
?>

Null birleştirme (null coalescing) operatörü, bir değişken hiç tanımlanmamış olsa bile bir hata tetiklemeden çalışır:

<?php
// $color hiçbir yerde tanımlanmamış
$selectedColor = $color ?? "blue";
echo $selectedColor; // blue
?>

Bu durum, ?? kullanımını isset() kontrolleriyle üçlü operatör kullanmaya göre daha temiz hale getirir. Verilerin eksik olabileceği durumlarda makul varsayılan değerler sağlamak için mükemmeldir.

challenge icon

Görev

Kolay

Girdiden iki değer okuyun: bir string nickname ve bir string theme.

Eksik olma ihtimali bulunan değerleri işlemek için null birleştirme (null coalescing) operatörünü kullanın:

  1. null olarak ayarlanmış bir $userNickname değişkeni oluşturun. Ardından, var ise ve null değilse $displayNickname değişkenine $userNickname değerini, aksi takdirde nickname girdi değerini atamak için null birleştirme operatörünü kullanın.
  2. Bir $userTheme değişkeni oluşturun ve buna theme girdi değerini atayın. Var ise ve null değilse $selectedTheme değişkenine $userTheme değerini atamak, aksi takdirde varsayılan olarak dark değerini kullanmak için null birleştirme operatörünü kullanın.
  3. Tanımlanmamış bir $language değişkeni ile doğrudan null birleştirme operatörünü kullanarak (değişkeni tanımlamayın), var ise $displayLanguage değişkenine $language değerini, aksi takdirde varsayılan olarak English değerini atayın.

Her sonucu şu sırada yeni bir satıra yazdırın: $displayNickname, $selectedTheme, $displayLanguage.

Örnek:

Girdiler Player1 ve light ise, çıktı şu şekilde olmalıdır:

Player1
light
English

Girdiler GuestUser ve blue ise, çıktı şu şekilde olmalıdır:

GuestUser
blue
English

Kendin dene

<?php
// Girdiyi oku
$nickname = trim(fgets(STDIN));
$theme = trim(fgets(STDIN));

// TODO: Kodunuzu aşağıya yazın
// 1. $userNickname'i null olarak oluşturun, ardından $displayNickname atamak için ?? kullanın
// 2. Tema girdisiyle $userTheme oluşturun, ardından $selectedTheme atamak için ?? kullanın (varsayılan: talimatlardaki tam metin)
// 3. $displayLanguage atamak için tanımsız $language ile ?? kullanın (varsayılan: talimatlardaki tam metin)

// Sonuçları çıktıla (her biri yeni bir satırda)
echo $displayNickname . "\n";
echo $selectedTheme . "\n";
echo $displayLanguage . "\n";
?>
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler

Kendi başına pratik yap: Online PHP derleyicisi