我的办公室里出现了关于使用三元运算符的讨论。这个讨论有两个方面。
Side 1)三元运算符易于编写和阅读,因此方便是净成本节省。
Side 2)三元运算符难以维护,因为如果需要将它们修改为更复杂一点,它们就需要过多的代码搅动。
如果您可以引用顶级机构在该主题上所做的任何实际研究,那么书呆子会加分……我很想看到这方面的硬数据。
我的理论是最好的代码是可以轻松更改和适应的代码,并且更改所需的复杂性越低,中断的机会就越少。例子:
$id = $user->isRegistered() ? $user->id : null;
好的,所以这是完全有效的,但是当代码需要更改以变得更复杂时会发生什么?
$id = null;
if ($user->isRegistered() || $user->hasEmail()) {
$id = $user->id;
}
任何理智的程序员都会查看三元并转换为标准 if/else。但是,这需要进行 4 行更改,而不是从以下开始:
if ($user->isRegistered()) {
$id = $user->id;
}
这只需要 1 行更改。