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.
Görev
KolayGirdiden 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:
nullolarak ayarlanmış bir$userNicknamedeğişkeni oluşturun. Ardından, var ise ve null değilse$displayNicknamedeğişkenine$userNicknamedeğerini, aksi takdirdenicknamegirdi değerini atamak için null birleştirme operatörünü kullanın.- Bir
$userThemedeğişkeni oluşturun ve bunathemegirdi değerini atayın. Var ise ve null değilse$selectedThemedeğişkenine$userThemedeğerini atamak, aksi takdirde varsayılan olarakdarkdeğerini kullanmak için null birleştirme operatörünü kullanın. - Tanımlanmamış bir
$languagedeğişkeni ile doğrudan null birleştirme operatörünü kullanarak (değişkeni tanımlamayın), var ise$displayLanguagedeğişkenine$languagedeğerini, aksi takdirde varsayılan olarakEnglishdeğ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
EnglishGirdiler GuestUser ve blue ise, çıktı şu şekilde olmalıdır:
GuestUser
blue
EnglishKendin 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";
?>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
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString OperatorsKendi başına pratik yap: Online PHP derleyicisi