в терминах безопасности, разницы нет. я обычно пользуюсь комбинацией этих двух - нечто вроде этого меня устраивает:
Код:
$allowed = array('c1','c2');
if(in_array($var, $allowed))
{
switch($var)
{
case 'c1':
echo 'foo c1';
break;
case 'c2':
echo 'foo c2';
break;
}
}
else
{
echo 'послано запрещённое значение var';
}