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 は float を返します。整数をテストしています。

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 に答える