三元运算符查询:串联难题
在这个编程困境中,一位好奇的编码人员在使用三元运算符和字符串串联时遇到了意想不到的结果。原始代码如下:
$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中文网其他相关文章!