Это действительно зависит от того, что вы хотите сделать со строками. Вы хотите выводить сообщения об ошибках? Тогда вместо оператора case вы можете использовать следующую таблицу:
$messages = array(
'NOT_FOUND' => 'The file was not found',
'EXPIRED' => 'The cookie expired'
// ETC
);
echo empty($messages[$error]) ? "Unknown error" : $messages[$error];
В PHP 5.3 вы также можете хранить код в массиве для обработки ситуаций с ошибками:
$handlers = array(
'NOT_FOUND' => function() { /* Error handling code here */ },
'EXPIRED' => function() { /* Other error handling code */ }
);
if(!empty($handlers[$error])) {
$handler = $handlers[$error];
$handler();
}
else {
echo "Could not handle error!"; die();
}
Используя такую технику, вы избегаете падежных операторов, занимающих несколько страниц.
С PHP <5.3 вы можете посмотреть на <code>call_user_func для динамической диспетчеризации функций обработки ошибок.