Larutan
echo $person->middleName ?? 'Person does not have a middle name';
Untuk menunjukkan bagaimana ini akan terlihat dalam pernyataan if untuk kejelasan lebih lanjut tentang bagaimana ini bekerja.
if($person->middleName ?? false) {
echo $person->middleName;
} else {
echo 'Person does not have a middle name';
}
Penjelasan
Cara PHP tradisional untuk memeriksa keberadaan sesuatu adalah dengan melakukan:
if(isset($person->middleName)) {
echo $person->middleName;
} else {
echo 'Person does not have a middle name';
}
ATAU untuk cara yang lebih spesifik kelas:
if(property_exists($person, 'middleName')) {
echo $person->middleName;
} else {
echo 'Person does not have a middle name';
}
Keduanya baik-baik saja dalam bentuk pernyataan panjang tetapi dalam pernyataan ternary mereka menjadi tidak perlu rumit seperti:
isset($person->middleName) ? echo $person->middleName : echo 'Person does not have a middle name';
Anda juga dapat mencapai ini hanya dengan operator ternary seperti:
echo $person->middleName ?: 'Person does not have a middle name';
Tapi ... jika nilainya tidak ada (tidak disetel) itu akan menaikkan E_NOTICE
dan bukan praktik terbaik. Jika nilainya null
tidak akan meningkatkan pengecualian.
Oleh karena itu operator ternary untuk penyelamatan membuat ini sedikit jawaban rapi:
echo $person->middleName ?? 'Person does not have a middle name';