<?php
$a = 0;
switch ($a) {
case 'true':
echo 'true!';
break;
case 'false':
echo 'false!';
break;
case 0:
echo 'zero!';
break;
default:
echo 'default!';
}
var_dump(0 == 'true');
bool(true)
0 == 'true'
, строка 'true'
переводятся в число, получается 0
Замечание:
Заметьте, что конструкция switch/case использует неточное сравнение (==).