美文网首页
php switch 的一个注意点

php switch 的一个注意点

作者: d866c6045d74 | 来源:发表于2018-04-21 11:20 被阅读94次

php switch 的一个注意点

    public function formatTime($timestamp) {
        $now = time();
        $diff = $now - $timestamp;
        switch ($diff) {
            case $diff < 60:
                $re = '1分钟';
                break;
            case $diff < 60 * 60:
                $re = strval(intval($diff / 60)) . '分钟';
                break;
            case $diff < 60 * 60 * 48:
                $re = strval(intval($diff / (60 * 60))) . '小时';
                break;
            default:
                $re = strval(intval($diff / (60 * 60 * 24))) . '天';
                break;
        }

        return $re;
    }

当时间戳是time()的时候,diff为0,想的得到的结果应该是返回1分钟,结果却返回了0天。

问题的原因就是switch case在执行的流程是 switch 位置的条件和 case 位置的条件做比较,再继续执行程序。

a.当$diff大于0时,switch位置的条件为“真” true,然后用true 和 case 位置的条件作比较。这时程序是没有问题的,因为只要case位置的条件为true语句就跳出了。

b.当$diff等于0时,就需要主要了。这个时候switch位置的条件为“假” false,语句继续执行的时候,只有当 case 位置的条件也为false 程序才会执行 case 冒号位置后的程序。而事实是 case 位置的所有调教都为“真”,所以最终的结果是执行default冒号后的语句。

这种情况将switch($diff)变为switch(true)就好了

相关文章

  • php switch 的一个注意点

    php switch 的一个注意点 当时间戳是time()的时候,diff为0,想的得到的结果应该是返回1分钟,结...

  • php switch 是松散比较

    php switch 是松散比较 详见 PHP: switch - Manual[https://www.php....

  • 八月十七号

    PHP中的“switch...case...”语法,如下:

  • 逻辑运算和switch while

    && || ! 取反 switch 使用注意: js内部使用全等判断 ,PHP内部使用的是 == 松散型 while循环

  • 第04天C语言(00):笔记总结

    01-Switch-基本概念 02-Switch-注意点 03-Switch-练习1 04-Switch-练习2 ...

  • switch() 的case注意点

    当在case里面定义了临时变量,就得要用{}框住,明确这个变量的作用域是在这个{}里面,不然编译就会报错。

  • switch

    注意点 switch的条件表达式注意点switch的条件表达式必须是返回整数的表达式,也就是说()中只能放整数或者...

  • 从0到1学习网络安全 【PHP基础-Switch 语句】

    PHP Switch 语句 switch 语句用于根据多个不同条件执行不同动作。 语法

  • 07-Go语言条件语句

    if条件语句 if条件语句三种格式 if条件语句结构特点 switch条件语句 语句格式 switch语句注意点

  • 4-选择/循环结构

    选择结构 1.switch注意点:case语句的穿透问题,switch里面的case只要匹配一次其它的都失效,这样...

网友评论

      本文标题:php switch 的一个注意点

      本文链接:https://www.haomeiwen.com/subject/iztxlftx.html