在PHP中,有没有办法使用三元条件连接两个字符串?
<?= 'something' . (true) ? 'else' : 'not'; ?>
当我尝试时,我得到的只是else
而不是所需的something else
。
答案 0 :(得分:9)
只需将括号括在整个三元运算符周围:
<?= 'something' . ((true) ? ' else' : ' not'); ?>
为什么要这样做?
答案是:运算符优先级
有关详细信息,请参阅手册:http://php.net/manual/en/language.operators.precedence.php
答案 1 :(得分:3)
是的,你需要把你的三元组放在括号中。试试这个:
<?php echo 'something '.((true) ? 'else' : 'not'); ?>
答案 2 :(得分:1)
您的代码等于
<?= ('something' . (true)) ? 'else' : 'not'; ?>
因为根据table of Operator Precedence,运算符.
具有更高的三元运算符优先级?:
因此,您必须按照Rizier123
的说明强制使用括号