Pengendali Ternary dan Penggabungan Rentetan: Tingkah Laku Luar Biasa
Dalam pengaturcaraan, operator ternary ialah alat yang berkuasa untuk pelaksanaan bersyarat. Walau bagaimanapun, apabila digandingkan dengan penggabungan rentetan, keanehan yang pelik boleh berlaku.
Satu senario sedemikian timbul apabila cuba membina rentetan berdasarkan nilai pembolehubah lain menggunakan operator ternary. Pertimbangkan kod berikut:
$paperType = 'bond'; $description = 'Paper: ' . ($paperType == 'bond') ? 'Bond' : 'Other';
Dalam kod ini, operator ternary digunakan untuk menentukan kandungan pembolehubah $description berdasarkan nilai $paperType. Apabila $paperType sama dengan 'Bond,' operator mengembalikan rentetan 'Bond'; jika tidak, ia mengembalikan rentetan 'Lain-lain.'
Walau bagaimanapun, selepas pelaksanaan, hasil $description mungkin tidak seperti yang dijangkakan. Daripada menghasilkan 'Paper: Bond' apabila $paperType ialah 'Bond,' kod tersebut mengeluarkan 'Bond' semata-mata. Ini boleh membingungkan, terutamanya bagi mereka yang tidak biasa dengan kebiasaan pengendali ternary.
Untuk menyelesaikan isu ini, tanda kurung mesti ditambah di sekitar operasi penggabungan rentetan, seperti ditunjukkan di bawah:
$description = 'Paper: ' . ($paperType == 'bond' ? 'Bond' : 'Other');
Dengan pengubahsuaian ini, penggabungan rentetan dilakukan dalam susunan yang betul, memastikan hasil yang diingini dicapai.
Ringkasnya, apabila menggunakan pengendali ternari untuk penggabungan rentetan, adalah penting untuk menyertakan operasi penggabungan dalam kurungan untuk menjamin hasil yang diharapkan.
Atas ialah kandungan terperinci Mengapa Penggabungan Rentetan dengan Operator Ternary Menghasilkan Gelagat Tidak Dijangka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!