Bar*_*lom 4 php conditional-operator
return true ? 'a' : false ? 'b' : 'c';
这应该返回'a',但它不会.它返回'b'.PHP处理条件运算符的不同部分的顺序是否存在错误?
我从这种情况下的多个条件运算符得到了一个好主意吗?它看起来似乎正常工作.
(当然,真实和假是为了示例的目的.在实际代码中,它们分别是评估为真和假的语句.是的,我知道这肯定)
建议您避免"堆叠"三元表达式.PHP在单个语句中使用多个三元运算符时的行为是不明显的
来自PHP手册 "非显而易见的三元行为".
三元运算符从左到右进行评估,因此除非您添加大括号,否则它不会按预期运行.以下可行,
return (true ? "a" : (false ? "b" : "c"));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1333 次 |
最近记录: |