Rumah >pembangunan bahagian belakang >tutorial php >Teka-teki Operator Ternary: Mengapa Penggabungan Rentetan Tidak Berfungsi Seperti Yang Dijangkakan?
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!