三元运算符和string连接的怪癖?

嗨,我只是想知道为什么这个代码产生(至less对我来说)一个不正确的结果。

好吧,可能我在这里有错

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

我在猜测,如果paperType等于'Bond',那么描述就是'Paper:Bond',如果paperType不等于'Bond',则描述为'Paper:Other'。

但是当我运行这个代码的结果是描述是“债券”或“其他”,让我想知道string“纸:”去了哪里?

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

尝试添加圆括号,以便将string按照正确的顺序连接到一个string。

这与运营商的优先级有关。 你必须做到以下几点:

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