首頁  >  文章  >  後端開發  >  三元運算子難題:為什麼字串連線沒有如預期運作?

三元運算子難題:為什麼字串連線沒有如預期運作?

Patricia Arquette
Patricia Arquette原創
2024-10-24 02:19:02983瀏覽

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

三元運算子查詢:串聯難題

在這個程式設計困境中,一位好奇的編碼人員在使用三元運算符和字串串聯時遇到了意想不到的結果。原始程式碼如下:

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

目的是讓 $description 變數在 $paperType 等於“bond”時保存字串“Paper: Bond”,否則儲存“Paper: Other”。然而得到的結果只是「Bond」或「Other」。

解決這個問題的關鍵在於三元表達式的運算順序。雖然三元運算子是條件賦值的便捷快捷方式,但它的操作優先權與字串連接不同。因此,串聯運算實際上發生在三元表達式求值之前。

為了修正這個問題,需要修改程式碼以確保串聯在三元表達式求值之後執行。修正後的程式碼:

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

透過將三元表達式括在括號中,程式碼可確保對三元表達式的結果執行字串連接,從而產生預期輸出「Paper: Bond」或「紙張:其他」是基於$paperType 的值。

以上是三元運算子難題:為什麼字串連線沒有如預期運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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