Nested Ternary Operators in PHP: A Puzzle Solved
Nested Ternary Operators menyediakan cara ringkas dan berkuasa untuk menetapkan nilai secara bersyarat dalam PHP. Walau bagaimanapun, apabila berbilang pengendali digunakan, sintaks yang betul menjadi penting.
Masalahnya
Pertimbangkan kod berikut:
$province = 7; $Myprovince = ( ($province == 6) ? "city-1" : ($province == 7) ? "city-2" : ($province == 8) ? "city-3" : ($province == 30) ? "city-4" : "out of borders" );
Walaupun berhasrat untuk pilih bandar berdasarkan nilai wilayah, kod memberikan "city-4" kepada $Myprovince untuk setiap medan.
Penyelesaian
Isunya terletak pada kekurangan kurungan. Setiap pengendali ternary mesti bersarang dengan betul untuk memastikan penilaian yang betul. Kod yang dikemas kini di bawah membetulkan masalah:
$province = 7; $Myprovince = ( ($province == 6) ? "city-1" : (($province == 7) ? "city-2" : (($province == 8) ? "city-3" : (($province == 30) ? "city-4" : "out of borders"))) );
Cara Ia Berfungsi
Pengendali ternary paling dalam menilai keadaan ($wilayah == 8) dan menetapkan "bandar -3" jika benar atau meneruskan ke operator seterusnya jika palsu.
Pengendali ternary tengah menyemak jika $province adalah sama dengan 7 dan memberikan "city-2" jika benar atau meneruskan ke operator seterusnya.
Akhir sekali, operator ternary paling luar menilai keadaan ($province == 6) dan menetapkan "city-1" jika benar atau meneruskan pilihan yang selebihnya, akhirnya menetapkan "bandar-4" jika $province adalah 30 atau "luar sempadan" sebaliknya.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Operator Ternary Bersarang dengan Betul dalam PHP untuk Mengelakkan Keputusan Tidak Dijangka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!