Menu
CoddyTech

Operator koalesensi null

Termasuk bagian Dasar-Dasar dalam perjalanan PHP di Coddy. Pelajaran 31 dari 71.

Operator penggabungan null (??) menyediakan cara praktis untuk menggunakan nilai default saat variabel bernilai null atau tidak ada. Ini sangat berguna saat bekerja dengan data yang mungkin tidak tersedia.

Sintaks menempatkan ?? di antara variabel yang akan diperiksa dan nilai pengganti:

<?php
$username = null;

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

PHP memeriksa apakah $username bernilai null. Karena memang begitu, operator mengembalikan "Guest" sebagai gantinya. Jika $username memiliki nilai, nilai itu akan digunakan.

<?php
$username = "Alice";

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

Operator null coalescing juga berfungsi saat variabel belum didefinisikan sama sekali, tanpa memicu error:

<?php
// $color tidak didefinisikan di mana pun
$selectedColor = $color ?? "blue";
echo $selectedColor; // blue
?>

Ini membuat ?? lebih rapi daripada menggunakan operator ternary dengan pemeriksaan isset(). Ini cocok untuk memberikan nilai default yang sesuai ketika data mungkin tidak tersedia.

challenge icon

Tantangan

Mudah

Baca dua nilai dari input: sebuah string nickname dan sebuah string theme.

Gunakan operator penggabungan null untuk menangani nilai yang mungkin tidak ada:

  1. Buat variabel $userNickname yang nilainya ditetapkan ke null. Lalu gunakan operator penggabungan null untuk menetapkan nilai $displayNickname ke nilai $userNickname jika variabel tersebut ada dan tidak bernilai null. Jika tidak, gunakan nilai input nickname.
  2. Buat variabel $userTheme dan tetapkan nilai input theme ke variabel tersebut. Gunakan operator penggabungan null untuk menetapkan nilai $selectedTheme ke nilai $userTheme jika variabel tersebut ada dan tidak bernilai null. Jika tidak, gunakan dark sebagai nilai default.
  3. Gunakan operator penggabungan null langsung dengan variabel yang belum didefinisikan $language (jangan definisikan variabel tersebut) untuk menetapkan nilai $displayLanguage ke nilai $language jika variabel tersebut ada. Jika tidak, gunakan English sebagai nilai default.

Cetak setiap hasil pada baris baru dengan urutan berikut: $displayNickname, $selectedTheme, $displayLanguage.

Contoh:

Jika inputnya adalah Player1 dan light, outputnya adalah:

Player1
light
English

Jika inputnya adalah GuestUser dan blue, outputnya adalah:

GuestUser
blue
English

Coba sendiri

<?php
// Baca input
$nickname = trim(fgets(STDIN));
$theme = trim(fgets(STDIN));

// TODO: Tulis kodemu di bawah ini
// 1. Buat $userNickname dengan nilai null, lalu gunakan ?? untuk menetapkan $displayNickname
// 2. Buat $userTheme dengan input tema, lalu gunakan ?? untuk menetapkan $selectedTheme (nilai bawaan: teks persis dari instruksi)
// 3. Gunakan ?? dengan $language yang belum didefinisikan untuk menetapkan $displayLanguage (nilai bawaan: teks persis dari instruksi)

// Tampilkan hasilnya (masing-masing pada baris baru)
echo $displayNickname . "\n";
echo $selectedTheme . "\n";
echo $displayLanguage . "\n";
?>
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler PHP online