使用PHP';s三元算子作为控制结构


Dangers/side-effects of using PHP's ternary operator as a control structure

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

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

(在这个例子中,语句在循环中被调用,向字符串中添加值,确保只有一个项时不会出现逗号分隔符。)本质上,他依靠表达式求值来完成工作,并丢弃表达式结果。

除了这对眼睛很难之外,还有什么理由避免这种构造吗?它在句法上是合法的;并且它正确地执行。但我确信三元运算符并不是以这种方式使用的,我想知道这样做是否会产生后果

它会很好地工作,除了可读性之外,我认为它没有任何问题。

如果您认为这对眼睛来说很难,请将此循环和行替换为对implode函数的调用。