после дефолта, брек не обязательно ставить, НО если он стоит последним. то есть
дефолт;
ляля
брек;
кэйс 'а':
ага
бреак;
тут нужно полюбому ставить. а как написано в первом посте, не обязательно, вообщем кому как
$filter = empty($_REQUEST['filter']) ? null : $_REQUEST['filter'];
замени этим кодом
$filter = $_GET['filter'];
дебагер включил бы (error_reporting(E_ALL)), он ошибки показал бы. Может там что-то не так еще. Впереди никаких условий нет? А die;? exit;?