2010-12-22 71 views
3

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

感谢您的见解!

+2

三元运算符没有好处。除了橙色苹果之外,没有任何好处。这是该死的另一种方法。不要成为一个傻瓜,不要再去寻找“完美”的做事方法。世界上没有这样的事情。 – 2010-12-22 19:03:15

+4

别介意Col.Srapnel。他的父母经常把他锁在壁橱里几个小时。为了最好的使用三元组,请看看这篇文章:http://stackoverflow.com/questions/160218/to-ternary-or-not-to-ternary – webbiedave 2010-12-22 20:06:14

回答

0

绝对不是,如果你想添加额外的ifs怎么办?再加上三元法实际上没有更快的速度

0

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

如果一个if/else链在每个子句中都有一行(并且它不是另一个if语句),那么您可以将代码安全地减少到三元组,并相信任何在你能够理解之后到达的人它。然而,如果你的代码有多行或嵌套的if语句,你不应该把它们转换成三元组 - 你所做的就是在这种情况下增加复杂性。

1

不,它们被编译/解释成相同的代码。最后,你所要做的就是让你的代码更难阅读和维护。

7

三种if/then语句应该用于基本逻辑,当有任何一种明确的选择时。当你开始嵌套三元的if/then语句时,当你需要修改或需要修正错误时,你对自己(或你未来的继承者)更加头疼。

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

+2

+1虽然我不确定“未来的前辈”。我认为这将被称为“接班人”。 ;) – netcoder 2010-12-22 19:19:55

6

这是毫无意义的。三元仅在非常“原始”的情况下有用,并且大多数if更复杂。

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

1

根本没有性能收益。它真的更容易阅读。如果你有一堆if-else语句,那么如果你离开它,会更容易。三元语法通常用于条件分配,如$var = $bool ? "IF TRUE" : "IF FALSE"。如果您正在执行if语句来分支代码的执行,那么三元语法并不合理。

3

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

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

0

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

如果你想加快速度,我认为对这件事有更好的做法。

所以,综上所述,我认为你不

0

有明确定义的时候需要重构现有的代码实例。

如果从语句变为三元不是其中之一,则从常规变换。

它们提供了绝对零的性能优势,并且纯粹是为了使代码更简洁,有时更易读。

0

这是一个较旧的会话,但我使用的是VS2010,.NET 4.0和三元运算符,它的执行效率始终比同等的if-then语句高出18%到22%。