首頁 >後端開發 >php教程 >為什麼三元運算子字串連線會出現意外結果?

為什麼三元運算子字串連線會出現意外結果?

Barbara Streisand
Barbara Streisand原創
2024-10-24 02:19:29683瀏覽

Why Unexpected Result in Ternary Operator String Concatenation?

三元運算子字串連接意外結果

在最近的編碼場景中,某些程式碼行為讓開發人員感到困惑。相關程式碼利用三元條件運算子根據給定條件確定字串值。然而,結果並不如預期。

程式碼和觀察

正在審查的程式碼如下:

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

意圖此程式碼背後的作用是,如果$paperType 為「bond ”,則將“Paper: Bond”分配給$description 變數;如果$paperType 不是“bond”,則將“Paper: Other”分配給$description 變數。

但是,在執行在程式碼中,開發人員觀察到 $description 直接被分配了值“Bond”或“Other”,而沒有預期的前綴“Paper:”。這個看似奇怪的結果促使人們尋求解釋。

修正

經過仔細分析,很明顯,三元表達式周圍省略了括號。此遺漏會改變操作順序,從而導致意外行為。

正確的程式碼應該是:

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

使用括號,字串「Paper:」已正確連接與三元表達式的結果,確保實現所需的輸出。

以上是為什麼三元運算子字串連線會出現意外結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn