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 birleştirme operatörü (??), bir değişkenin null olması veya mevcut olmaması durumunda varsayılan bir değer kullanmanın pratik bir yolunu sağlar. Bu, eksik olabilecek verilerle çalışırken özellikle kullanışlıdır.

Sözdizimi, kontrol edilecek değişken ile yedek değer arasına ?? yerleştirir:

<?php
$username = null;

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

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

<?php
$username = "Alice";

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

Null birleştirme operatörü ayrıca bir değişken hiç tanımlanmadığında da çalışır, hata tetiklemeden:

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

Bu, isset() kontrolleriyle üçlü operatör kullanmaktan ??'yi daha temiz hale getirir. Veri eksik olabileceğinde mantıklı varsayılan değerler sağlamak için mükemmeldir.

challenge icon

Görev

Kolay

Girişten iki değer okuyun: bir dize nickname ve bir dize theme.

Potansiyel olarak eksik değerleri işlemek için null birleştirme operatörünü kullanın:

  1. null'a ayarlanmış bir $userNickname değişkeni oluşturun. Ardından null birleştirme operatörünü kullanarak $displayNickname'i $userNickname mevcut ve null değilse onun değeriyle, aksi takdirde nickname giriş değeriyle atayın.
  2. $userTheme adında bir değişken oluşturun ve ona theme giriş değerini atayın. Null birleştirme operatörünü kullanarak $selectedTheme'i $userTheme mevcut ve null değilse onun değeriyle, aksi takdirde varsayılan olarak dark kullanın.
  3. Tanımlanmamış bir değişken $language ile (onu tanımlamayın) doğrudan null birleştirme operatörünü kullanarak $displayLanguage'i $language mevcutsa onun değeriyle, aksi takdirde varsayılan olarak English ile atayın.

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

Örnek:

Eğer girişler Player1 ve light ise, çıktı şu şekilde olmalıdır:

Player1
light
English

Eğer girişler GuestUser ve blue ise, çıktı şu şekilde olmalıdır:

GuestUser
blue
English

Kopya kağıdı

Null birleştirme operatörü (??), bir değişken null olduğunda veya mevcut olmadığında varsayılan bir değer sağlar.

Sözdizimi:

$result = $variable ?? "default value";

Eğer $variable null ise, varsayılan değer kullanılır:

$username = null;
$displayName = $username ?? "Guest";
echo $displayName; // Guest

Eğer $variable bir değere sahipse, o değer kullanılır:

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

Operatör ayrıca hata tetiklemeden tanımlanmamış değişkenlerle de çalışır:

// $color is not defined
$selectedColor = $color ?? "blue";
echo $selectedColor; // blue

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 ?? kullanarak $displayNickname'e atayın
// 2. Tema girdisiyle $userTheme oluşturun, ardından ?? kullanarak $selectedTheme'e atayın (varsayılan: 'dark')
// 3. Tanımlanmamış $language ile ?? kullanarak $displayLanguage'e atayın (varsayılan: 'English')

// Sonuçları çıktılayın (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