0

我一直在寻找一个决定性的答案,以确定 if / else 语句是否可以包含 else ifs。当我只是为变量赋值并且通常工作时,我会经常使用它们。然而,他们每隔一段时间就会返回意想不到的结果。

我已经尝试寻找明确的答案,例如这些陈述不应包含 else ifs,但我无法在文档中找到它。

为了更好地解释,假设我在 PHP 中有以下 if 语句:

$type = 'one';
$choice = ($type == 'one') ? 'One Fish' : ($type == 'two') ? 'Two Fish' : 'Three Fish';

为什么这会返回“两条鱼”?我在包括 PHP 和 JS 在内的多种语言中体验过这一点。我只是想做一些我不应该做的事情吗?

4

2 回答 2

4

我对您的建议是保持简写简单的 if/else 语句和代码“简写”来处理更复杂的事情。

这样做的原因是长寿,你会发现在几个月后阅读你的代码会更容易等等。如果你在一个团队中工作,它会让你的代码对团队更加友好!

于 2013-03-28T20:08:21.547 回答
1

您需要将第一个测试的“else”部分括在括号中,以便正确解释。

$choice = ($type == 'one')
           ? 'One Fish'
           : (($type == 'two') ? 'Two Fish' : 'Three Fish');

这里有一些关于使用三元运算符的建议。

于 2013-03-28T19:58:14.610 回答