如果/ else,我应该用三元速记替换所有的if / else语句吗? (PHP)

时间:2010-12-22 18:57:18

标签: php if-statement ternary

我正在阅读关于if / else的三元速记,并且想知道用三元速记替换所有(或大多数)传统的if / else语句是否有意义或更有益?这会让它跑得更快吗?或者所有的好处都在于它的代码更少?

感谢您的见解!

10 个答案:

答案 0 :(得分:7)

当有明确的选择方式时,三元if / then语句应该用于基本逻辑。当你开始嵌套三元if / then语句时,你只需要为自己(或未来的继任者)做出更多的麻烦,当需要进行更改或者需要修复错误时。

至于速度提升,你不会看到三元或正常陈述之间的差异。但是,您将从文件大小中删除几个字节,但可能远远不够明显。

答案 1 :(得分:6)

那毫无意义。三元仅在非常“原始”的条件下有用,并且大多数if都更复杂。

你将失去很多时间来获得绝对没有。

答案 2 :(得分:3)

代码是为人而不是计算机编写的,有些人发现使用三元运算符很难阅读。

就个人而言,我认为作为一名程序员,你希望你的重点放在可读性上。

答案 3 :(得分:1)

不,它们被编译/解释为相同的代码。

最后,您要完成的任务就是让您的代码更难以阅读并且难以维护。

答案 4 :(得分:1)

根本没有性能提升。它真的更容易阅读。如果你有一堆if-else语句,那么如果你把它留下来会更容易。三元语句通常用于$var = $bool ? "IF TRUE" : "IF FALSE"等条件分配。如果你正在做一个if语句来分支执行代码,那么三元就没有意义。

答案 5 :(得分:0)

绝对不是,如果你想添加其他ifs怎么办?加上三元方法实际上并没有更快

答案 6 :(得分:0)

三元不会让你的代码运行得更快 - 它们只是一个快捷方式(并且有点难以阅读)。你应该非常小心用三元组替换if / else语句。

如果if / else链在每个子句中都有一行(并且它不是另一个if语句),那么您可以安全地将代码减少为三元组并相信任何跟随您的人都能够理解它。但是,如果您的代码有多行或嵌套if语句,则不应将它们转换为三元组 - 您所做的只是增加复杂性。

答案 7 :(得分:0)

我不认为改变旧的ifs是我推荐的工作项目。考虑向后兼容性,如果你不在一个全新的系统上部署你的项目,它就不会工作。

如果你试图加快速度,我认为这个问题有更好的实践。

所以,总之,我认为你不

答案 8 :(得分:0)

有很好的定义何时重构现有代码的实例。

从regular if语句更改为三元语句不是其中之一。

它们提供绝对零性能优势,纯粹是为了帮助使代码更简洁,有时更具可读性。

答案 9 :(得分:0)

这是一个较旧的对话,但我使用的是VS2010,.NET 4.0和三元运算符的效果始终比同等的if-then语句好18%到22%。