【发布时间】:2015-02-02 16:43:17
【问题描述】:
在 PHP 中,有没有办法使用三元条件连接两个字符串?
<?= 'something' . (true) ? 'else' : 'not'; ?>
当我尝试这样做时,我得到的只是else,而不是所需的something else。
【问题讨论】:
标签: php
在 PHP 中,有没有办法使用三元条件连接两个字符串?
<?= 'something' . (true) ? 'else' : 'not'; ?>
当我尝试这样做时,我得到的只是else,而不是所需的something else。
【问题讨论】:
标签: php
只需像这样在整个三元运算符周围加上括号:
<?= 'something' . ((true) ? ' else' : ' not'); ?>
你为什么要这么做?
答案是:运算符优先级
查看手册了解更多信息:http://php.net/manual/en/language.operators.precedence.php
【讨论】:
是的,你需要把你的三元组放在括号里。试试这个:
<?php echo 'something '.((true) ? 'else' : 'not'); ?>
【讨论】:
你的代码等于
<?= ('something' . (true)) ? 'else' : 'not'; ?>
因为根据table of Operator Precedence,运算符.的优先级高于三元运算符?:
因此,您必须按照Rizier123 的说明用括号强制优先级
【讨论】: