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

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

Barbara Streisand
發布: 2024-10-24 02:19:29
原創
686 人瀏覽過

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中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板