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.
Tantangan
MudahBaca dua nilai dari input: sebuah string nickname dan sebuah string theme.
Gunakan operator penggabungan null untuk menangani nilai yang mungkin tidak ada:
- Buat variabel
$userNicknameyang nilainya ditetapkan kenull. Lalu gunakan operator penggabungan null untuk menetapkan nilai$displayNicknameke nilai$userNicknamejika variabel tersebut ada dan tidak bernilai null. Jika tidak, gunakan nilai inputnickname. - Buat variabel
$userThemedan tetapkan nilai inputthemeke variabel tersebut. Gunakan operator penggabungan null untuk menetapkan nilai$selectedThemeke nilai$userThemejika variabel tersebut ada dan tidak bernilai null. Jika tidak, gunakandarksebagai nilai default. - Gunakan operator penggabungan null langsung dengan variabel yang belum didefinisikan
$language(jangan definisikan variabel tersebut) untuk menetapkan nilai$displayLanguageke nilai$languagejika variabel tersebut ada. Jika tidak, gunakanEnglishsebagai 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
EnglishJika inputnya adalah GuestUser dan blue, outputnya adalah:
GuestUser
blue
EnglishCoba 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";
?>Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator Perbandingan & Logika
Operator PerbandinganKesamaan & IdentitasOperator Logika Bagian 1Operator Logika Bagian 2Rangkuman: Logika Sederhana2Variabel dan Tipe Data
AngkaString dan Tanda KutipBooleanKonvensi PenamaanRangkuman, Inisialisasi VariabelVariabel KosongPenggabungan stringMengambil input PenggunaKonversi ke Tipe Data Lain5Logika Percabangan
Pernyataan ifIf-elseOperator ternaryOperator koalesensi nullPernyataan switchRangkuman: Membuat Keputusan3Operator Dasar
Operator AritmetikaOperator ModuloOperator PangkatPenugasan GabunganInkrementasi/DekrementasiPrioritas OperatorUlasan: Perhitungan SederhanaOperator stringLatihan sendiri: Compiler PHP online