三元运算符字符串连接意外结果
在最近的编码场景中,某些代码行为让开发人员感到困惑。相关代码利用三元条件运算符根据给定条件确定字符串值。然而,结果并不如预期。
代码和观察
正在审查的代码如下:
$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中文网其他相关文章!