Pengendali ternary PHP, diwakili sebagai ? :, berfungsi sebagai alternatif ringkas kepada pernyataan if-else klasik. Ia memanfaatkan sintaks mudah:
(condition) ? value_if_true : value_if_false;
Ini diterjemahkan ke dalam persamaan if-else berikut:
if (condition) { echo value_if_true; } else { echo value_if_false; }
Pengendali Ternary sememangnya kekurangan kefungsian "elseif" bagi pernyataan if-else. Walau bagaimanapun, terdapat pendekatan lain yang tersedia untuk mengendalikan senario ini:
Pengendali Ternari Bersarang boleh digunakan untuk memperkenalkan logik "elseif". Sebagai contoh, coretan kod berikut mempamerkan pengendali ternary bersarang:
echo($result->vocation == 1 ? "Sorcerer" : ($result->vocation == 2 ? "Druid" : ($result->vocation == 3 ? "Paladin" : "unknown")));
Struktur bersarang ini berkesan mencapai hasil yang sama seperti logik "elseif" dalam pernyataan if-else asal. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa ungkapan ternary bersarang boleh menjadi sukar untuk dibaca dan dinyahpepijat dengan cepat, terutamanya apabila bilangan keadaan "elseif" meningkat.
Daripada bergantung pada ternary bersarang pengendali, pendekatan alternatif ialah menggunakan pernyataan "switch-case" PHP, yang secara eksplisit mengendalikan pelbagai keadaan dalam keadaan yang lebih bersih dan cara yang lebih mudah dibaca. Pertimbangkan contoh berikut:
switch ($result->vocation) { case 1: echo "Sorcerer"; break; case 2: echo "Druid"; break; case 3: echo "Paladin"; break; default: echo "Unknown"; }
Dalam kes di mana kebolehbacaan dan kebolehselenggaraan adalah penting, secara amnya adalah dinasihatkan untuk mengutamakan pernyataan if-else atau "switch-case" berbanding pernyataan bersarang kompleks pengendali ternary.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meniru Logik 'Elseif' Dengan Berkesan Menggunakan Operator Ternary PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!