三元运算符和字符串串联怪癖?

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

好吧,可能我在这里有错

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

我猜想,如果paperType等于“Bond”,那么描述是“Paper:Bond”,如果paperType不等于“Bond”,那么描述就是“Paper:Other”。

但是当我运行此代码时,结果是描述是“Bond”或“Other”,这让我想知道字符串“Paper:'去了哪里???


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

尝试添加括号,以便字符串按正确的顺序连接到字符串。


答案 2

它与运算符优先级相关。您必须执行以下操作:

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

推荐