php - 条件开关的问题

标签 php switch-statement

以下示例摘自 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/

相关文章:

php - 为 php7 设置 mongoDB 扩展

php - 如何检测PHP脚本是否已经在运行?

android - 带有切换按钮的共享首选项

matlab - 如何获得函数内的语句以随机选择的顺序执行?

php - Drupal 网站被黑了,但找不到源代码?

php - 我如何在 Laravel 的 Eloquent 中表示这种游戏所有者关系

java - 循环不会结束。我该如何让它退出?

ruby-on-rails - 每个 'when' block 中有多个值的 Case 语句

c - 开关盒产生错误输出

php - Html 不向 php 发送发布数据