三元運算子字串連接意外結果
在最近的編碼場景中,某些程式碼行為讓開發人員感到困惑。相關程式碼利用三元條件運算子根據給定條件確定字串值。然而,結果並不如預期。
程式碼和觀察
正在審查的程式碼如下:
$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中文網其他相關文章!