【发布时间】:2015-09-27 13:50:55
【问题描述】:
我用过这个三元运算符。根据返回值检查我的长度变量$len
我的长度取自
$len = strlen($indChar); // values up to 3 ... 8
当它传递 3 的值时,它奇怪地返回 30
$lft = ($len <= 4) ? 10 :
((5 <= $len) && ($len <= 6)) ? 20 :
((7 <= $len) && ($len <= 8)) ? 30 : 35;
var_dump($lft); //30
我不知道我做错了什么。如有错误请指正。
【问题讨论】:
-
它总是返回 30,你得到了
<=条件加倍。试试这个(5 >= $len) && ($len <= 6)和(7 >= $len) && ($len <= 8) -
每个表达式都必须包含在括号中。
-
如果您阅读 php 文档和其他文献(在线/离线),您会注意到强烈建议不要使用复杂的三元运算...不仅因为可读性,还因为它非常错误-易于。如果您需要比较多个,请使用常规条件(if-else)...
标签: php ternary-operator