使用PHP的三元运算符作为控制结构的危险/副作用

时间:2014-09-23 12:57:47

标签: php if-statement conditional-operator

同事经常使用PHP的三元运算符作为控制结构,而不是表达式的RHS。一个这样的例子:

list==''?list=val:list=list+','+val;

(在该示例中,语句在循环中调用以向字符串添加值,确保如果只有一个项目,则不会出现逗号分隔符。)实质上,他依赖于表达式评估做工作,并抛弃表达式结果。

除了眼睛很难,有没有理由避免这种构造?它的语法合法;它正确执行。但是我确定三元运算符并没有被设计成以这种方式使用,我想知道这样做会有后果。

1 个答案:

答案 0 :(得分:3)

它可以正常工作,除了可读性之外我没有看到任何问题。

如果您认为眼睛很难,请更换此循环,然后调用implode功能。