Switch с нулевым условием в php?

$path = '5.txt';
(int)$size = filesize($path);

switch ($size) {
    case $size >= 1073741824:
        $size = round($size / 1073741824 * 100) / 100 . ' GB';
        break;
    case $size >= 1048576:
        $size = round($size / 1048576 * 100) / 100 . ' MB';
        break;
    case $size >= 1024:
        $size = round($size / 1024 * 100) / 100 . ' KB';
        break;
    default:
        $size .= ' Bytes';
        break;
}


Если $path имеет какой то вес то все работает, а если размер файла $path равен нулю то выводит 0 Gb.
Подскажите пожалуйста почему так?
  • Вопрос задан
  • 517 просмотров
Пригласить эксперта
Ответы на вопрос 2
index0h
@index0h
PHP, Golang. https://github.com/index0h
Вы сравниваете красное и мягкое (int с bool), понятное дело, что результат будет не очевидным)). По сути вы сравниваете примерно так:echo 0 == (0 >= 1073741824);
Ответ написан
romy4
@romy4
Exception handler
не бойтесь ифа
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SymbioWay Москва
от 120 000 до 180 000 ₽
АКМЭ сервис Санкт-Петербург
от 120 000 до 150 000 ₽
РосТендер Москва
от 130 000 до 150 000 ₽
14 авг. 2020, в 22:47
15000 руб./за проект
14 авг. 2020, в 22:40
15000 руб./за проект