连接+三元组

时间:2015-02-02 16:43:17

标签: php

在PHP中,有没有办法使用三元条件连接两个字符串?

<?= 'something' . (true) ? 'else' : 'not'; ?>

当我尝试时,我得到的只是else而不是所需的something else

3 个答案:

答案 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

的说明强制使用括号