Попробуйте оператор с определенным значением, скажем, $waveFeet = 10;
, затем пошагово пройдитесь по коду. Первое условие успешно выполняется, поэтому более поздние ветви никогда не проверяются. Фактически, единственный раз, когда первая ветвь не введена, это когда $waveFeet < 2
, и в этом случае будет выполняться последняя ветвь тела. Таким образом, средняя ветвь никогда не выполняется. Более эксклюзивный случай должен стоять первым:
if (5 < $waveFeet) {
...
} elseif (2 <= $waveFeet) {
...
} else {
# $waveFeet < 2
...
}
Для полной безопасности вы можете указать оба граничных условия:
...
} elseif (2 <= $waveFeet && $waveFeet <= 5) {
...
Неэффективность из-за избыточности минимальна, а код более понятен. По мере того, как вы становитесь более опытным, вы можете отказаться от такого рода вещей.
Если вы хотите округлить хотя бы отрицательные числа, используйте floor
. Если вы хотите округлить до нуля (то есть усечь), приведите к int:
$waveFeet = (int) $ar2;