Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Keputusan Tidak Dijangka dalam Gabungan Rentetan Operator Ternary?

Mengapa Keputusan Tidak Dijangka dalam Gabungan Rentetan Operator Ternary?

Barbara Streisand
Barbara Streisandasal
2024-10-24 02:19:29612semak imbas

Why Unexpected Result in Ternary Operator String Concatenation?

Penggabungan Rentetan Operator Ternary Hasil Tidak Dijangka

Dalam senario pengekodan baru-baru ini, gelagat kod tertentu telah menyebabkan pembangun bingung. Kod yang dipersoalkan menggunakan pengendali bersyarat ternary untuk menentukan nilai rentetan berdasarkan syarat tertentu. Bagaimanapun, keputusannya tidak seperti yang dijangkakan.

Kod dan Pemerhatian

Kod yang diteliti adalah seperti berikut:

$description = 'Paper: ' . ($paperType == 'bond') ? 'Bond' : 'Other';

Niat di sebalik kod ini adalah untuk menetapkan 'Paper: Bond' kepada pembolehubah $description jika $paperType ialah 'bond' dan 'Paper: Other' jika $paperType bukan 'bond'.

Walau bagaimanapun, apabila melaksanakan kod, pembangun memerhatikan bahawa $description sama ada diberikan nilai 'Bond' atau 'Other' secara langsung, tanpa awalan dijangka 'Paper: '. Hasil yang kelihatan pelik ini telah mendorong pencarian untuk penjelasan.

Pembetulan

Setelah dianalisis dengan lebih dekat, ternyata tanda kurungan ditinggalkan di sekitar ungkapan ternary. Peninggalan ini mengubah susunan operasi, mengakibatkan tingkah laku yang tidak dijangka.

Kod yang betul hendaklah:

$description = 'Paper: ' . ($paperType == 'bond' ? 'Bond' : 'Other');

Dengan tanda kurung di tempatnya, rentetan 'Kertas: ' digabungkan dengan betul dengan hasil ungkapan ternary, memastikan output yang diingini dicapai.

Atas ialah kandungan terperinci Mengapa Keputusan Tidak Dijangka dalam Gabungan Rentetan Operator Ternary?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn