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

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

Войти через центр авторизации
Похожие вопросы