Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Teka-teki Operator Ternary: Mengapa Penggabungan Rentetan Tidak Berfungsi Seperti Yang Dijangkakan?

Teka-teki Operator Ternary: Mengapa Penggabungan Rentetan Tidak Berfungsi Seperti Yang Dijangkakan?

Patricia Arquette
Patricia Arquetteasal
2024-10-24 02:19:02983semak imbas

Ternary Operator Puzzle: Why Isn't String Concatenation Working as Expected?

Siasatan Operator Ternary: Concatenation Conundrum

Dalam kebingungan pengaturcaraan ini, seorang pengekod yang ingin tahu menemui hasil yang tidak dijangka apabila menggunakan operator ternary dan penggabungan rentetan . Kod asal berbunyi seperti berikut:

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

Niatnya ialah untuk pembolehubah $description menahan rentetan "Paper: Bond" jika $paperType sama dengan "bond," atau "Paper: Other" sebaliknya. Walau bagaimanapun, hasil yang diperoleh hanyalah "Ikatan" atau "Lain-lain."

Kunci untuk menyelesaikan isu ini terletak pada susunan operasi dalam ungkapan ternary. Walaupun pengendali ternary ialah jalan pintas yang mudah untuk tugasan bersyarat, ia beroperasi pada tahap keutamaan yang berbeza daripada penggabungan rentetan. Akibatnya, operasi penggabungan sebenarnya berlaku sebelum penilaian ungkapan ternary.

Untuk membetulkan ini, kod perlu diubah suai untuk memastikan bahawa penggabungan dilakukan selepas penilaian ungkapan ternary. Kod yang diperbetulkan:

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

Dengan melampirkan ungkapan ternary dalam kurungan, kod memastikan bahawa penyatuan rentetan dilakukan pada hasil ungkapan ternary, menghasilkan output yang dijangkakan sama ada "Paper: Bond" atau "Kertas: Lain-lain" berdasarkan nilai $paperType.

Atas ialah kandungan terperinci Teka-teki Operator Ternary: Mengapa Penggabungan Rentetan Tidak Berfungsi Seperti Yang Dijangkakan?. 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