Menu
CoddyTech

Operator koalesensi null

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

Operator null coalescing (??) 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 cadangan:

<?php
$username = null;

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

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

<?php
$username = "Alice";

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

Operator penggabungan null 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 wajar saat data mungkin tidak tersedia.

challenge icon

Tantangan

Mudah

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

Gunakan operator null coalescing untuk menangani nilai yang mungkin tidak tersedia:

  1. Buat variabel $userNickname yang diberi nilai null. Lalu gunakan operator null coalescing untuk menetapkan nilai $userNickname ke $displayNickname jika nilai tersebut ada dan bukan null, jika tidak, gunakan nilai input nickname.
  2. Buat variabel $userTheme dan tetapkan nilai input theme kepadanya. Gunakan operator null coalescing untuk menetapkan nilai $userTheme ke $selectedTheme jika nilai tersebut ada dan bukan null, jika tidak, gunakan dark sebagai nilai default.
  3. Gunakan operator null coalescing secara langsung dengan variabel $language yang belum didefinisikan (jangan mendefinisikannya) untuk menetapkan nilai $language ke $displayLanguage jika variabel tersebut ada, jika tidak, gunakan English sebagai nilai default.

Cetak setiap hasil pada baris baru dengan urutan ini: $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 output 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