Конструкція switch-case використовує нестроге порівняння, тому тип там не має значення.
Ви вірно підмітили із switch(true).
ДО того ж можна і строге порівнювати, не суть.
Я не розумію, як можна надіятись на НЕстроге порівняння у випадках коли є порівняння типу <= та >= коли порівнюються стрічка і число, це абсурд так писати. Результат може бути зовсім не такий як очікуєш. PHP нестроготипізована мова, такі речі потрібно враховувати.