我一直在寻找一个决定性的答案,以确定短手if / else语句是否可以包含其他ifs。当我只是为变量赋值并且通常工作时,我会经常使用它们。然而,每隔一段时间他们就会产生意想不到的结果。
我已经尝试过寻找明确的答案,例如这些陈述不应该包含其他ifs,但我无法在文档中找到它。
为了更好地解释,我可以说PHP中有以下if语句:
$type = 'one';
$choice = ($type == 'one') ? 'One Fish' : ($type == 'two') ? 'Two Fish' : 'Three Fish';
为什么会因此返回'Two Fish'?我在包括PHP和JS在内的多种语言中遇到过这种情况。我只是想做一些我不应该做的事情吗?
答案 0 :(得分:4)
我给你的建议是简单的简单if / else语句和代码“longhand”用于更复杂的事情。
这样做的原因就是长寿,你会发现在几个月内阅读你的代码要容易得多。如果你在一个团队中工作,它将使你的代码更加团队友好!
答案 1 :(得分:1)
您需要将第一个测试的“else”部分包含在括号中,以便正确解释。
$choice = ($type == 'one')
? 'One Fish'
: (($type == 'two') ? 'Two Fish' : 'Three Fish');
以下是您的一些建议on using the ternary operator。