Почему ноль больше нуля?
Вот код:
$value1 = 550;
$value2 = 550;
$dolg = $value1 - $value2;
switch ($dolg) {
case ($dolg > 0):
print_r ( '<b>Долг клиента по оплате:</b> ' . $dolg . ' руб.' );
break;
case ($dolg < 0):
print_r ( '<b>Переплата клиента:</b> ' . $dolg . ' руб.' );
break;
case ($dolg == 0):
print_r ( '<b>Долг клиента отсутствует</b>' );
break;
}
Почему то срабатывает первый case и выводится "Долг клиента по оплате: 0 руб." Хотя по моей задумке должно выводится "Долг клиента отсутствует". Что я делаю не так? Спасибо заранее.
Версия PHP 7.4.33
Ответы (1 шт):
Автор решения: user7860670
→ Ссылка
В case ($dolg > 0)
сначала производится вычисление выражения, а затем сравнение результата на равенство с агрументом switch
. Вам нужен обычный if/else
if ($dolg > 0)
{
print_r ( '<b>Долг клиента по оплате:</b> ' . $dolg . ' руб.' );
}
else if ($dolg < 0)
{
print_r ( '<b>Переплата клиента:</b> ' . $dolg . ' руб.' );
}
else
{
print_r ( '<b>Долг клиента отсутствует</b>' );
}