可以使用速记If / Else语句是否包括或更多Else If?

时间:2013-03-28 19:47:37

标签: php if-statement

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

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

为了更好地解释,我可以说PHP中有以下if语句:

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

为什么会因此返回'Two Fish'?我在包括PHP和JS在内的多种语言中遇到过这种情况。我只是想做一些我不应该做的事情吗?

2 个答案:

答案 0 :(得分:4)

我给你的建议是简单的简单if / else语句和代码“longhand”用于更复杂的事情。

这样做的原因就是长寿,你会发现在几个月内阅读你的代码要容易得多。如果你在一个团队中工作,它将使你的代码更加团队友好!

答案 1 :(得分:1)

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

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

以下是您的一些建议on using the ternary operator