首页 >后端开发 >php教程 >为什么三元运算符字符串连接会出现意外结果?

为什么三元运算符字符串连接会出现意外结果?

Barbara Streisand
Barbara Streisand原创
2024-10-24 02:19:29682浏览

Why Unexpected Result in Ternary Operator String Concatenation?

三元运算符字符串连接意外结果

在最近的编码场景中,某些代码行为让开发人员感到困惑。相关代码利用三元条件运算符根据给定条件确定字符串值。然而,结果并不如预期。

代码和观察

正在审查的代码如下:

$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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn