下面的示例摘自http://php.net/manual/de/control-structs.switch.php 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 语句。
EDIT:-
感谢大家的回复。我可以通过将 switch($totaltime) 修改为 switch(1) 来克服上述问题
case ($totaltime < 1):
means 1
到 PHP(该方程返回 true)
case ($totaltime > 1):
means 0
到 PHP(该方程返回 false)
Since $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 语句以使其真正起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)