以下示例摘自 http://php.net/manual/de/control-structures.switch.php
<?php
$totaltime = 0;
switch ($totaltime) {
case ($totaltime < 1):
echo "That was fast!";
break;
case ($totaltime > 1):
echo "Not fast!";
break;
case ($totaltime > 10):
echo "That's slooooow";
break;
}
?>
我预计结果是“那很快”。但实际结果是“不快!”。如果有人能向我解释为什么,那就太好了?
但如果我添加另一个案例,case 0: echo "That was super fast!".
然后它会正确回显。即“那太快了!”。请帮助我如何使用条件切换语句。
编辑:-
感谢大家的回复。我可以通过将 switch($totaltime) 修改为 switch(1) 来克服上述问题
最佳答案
case ($totaltime < 1):
表示 1
到 PHP(该等式返回真)
case ($totaltime > 1):
表示 0
到 PHP(该等式返回 false)
自 $totaltime
是 0,你得到那个输出
换句话说PHP比较$totaltime
比较结果。
关于 OP 中的编辑的编辑:
你需要去掉 switch()
-陈述。您仅使用它来轻松地与不同的值进行比较,而不是使用其他表达式。
我是说哪里出了问题
<?php
$totaltime = 0;
if ($totaltime < 1) {
echo "That was fast!";
} else if ($totaltime > 10) {
echo "That's slooooow";
} else if ($totaltime > 1) {
echo "Not fast!";
}
?>
编辑:请注意,我切换了最后两个 if 语句以使其真正起作用。
关于php - 条件开关的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4498739/