Znalazłem coś ciekawego w komentarzach do dokumentacji PHP:
If you need a tidy way to do a lot of condition testing, switch statement will do the job well:
switch (true){case ($a>0)://do sth;break;case ($b>0)://do sth;break;case ($c>0)://do sth;break;case ($d>0)://do sth;break;}
Źródło: PHP: Alternative syntax for control structures - Manual


hehe, po przeczytaniu zastanawiam się, czemu wcześniej na to nie wpadłem, to przecież takie logiczne ;).
ale niestety nie da sie:
switch ($string) {
case /^a/: break;
case /^b/: break;
default:
}
a w perlu sie da!