1

这段代码:

$hour = 2.2;
    if (floor($hour) > 1) {
        $str = $str . floor($hour) . " hours";
    }
    else if (floor($hour) === 1) {
        $str = $str . floor($hour) . " hour";
    }
echo $str;

将输出:2 hours

但是,这一点:

$hour = 1.2;
    if (floor($hour) > 1) {
        $str = $str . floor($hour) . " hours, ";
    }
    else if (floor($hour) === 1) {
        $str = $str . floor($hour) . " hour ";
}
echo $str;

不会输出,因为 的条件由于某种原因匹配。这是为什么?1 hourelse if

4

1 回答 1

3

Floor 返回一个浮点数,您正在测试一个整数。

http://php.net/manual/en/function.floor.php

为清楚起见进行编辑:

<?php
$str = "";
$hour = 1.2;
    if (floor($hour) > 1) {
        $str = $str . floor($hour) . " hours, ";
    }
    else if ((int) floor($hour) === 1) {
        $str = $str . floor($hour) . " hour ";
}
echo $str;

?>
于 2012-05-09T21:52:09.117 回答