Нет лучшего способа, но поскольку эту операцию вы обычно делаете довольно часто, вам лучше автоматизировать процесс.
Большинство фреймворков позволяют легко разбирать аргументы. Вы можете построить свой собственный объект для этого. Быстрый и грязный пример:
class Request
{
// This is the spirit but you may want to make that cleaner :-)
function get($key, $default=null, $from=null)
{
if ($from) :
if (isset(${'_'.$from}[$key]));
return sanitize(${'_'.strtoupper($from)}[$key]); // didn't test that but it should work
else
if isset($_REQUEST[$key])
return sanitize($_REQUEST[$key]);
return $default;
}
// basics. Enforce it with filters according to your needs
function sanitize($data)
{
return addslashes(trim($data));
}
// your rules here
function isEmptyString($data)
{
return (trim($data) === "" or $data === null);
}
function exists($key) {}
function setFlash($name, $value) {}
[...]
}
$request = new Request();
$question= $request->get('question', '', 'post');
print $request->isEmptyString($question);
Symfony широко использует этот вид сахара.
Но вы говорите о чем-то большем, с вашей "// Ошибка обработки здесь
". Вы смешиваете 2 задания: получение данных и их обработка. Это совсем не одно и то же.
Существуют и другие механизмы, которые вы можете использовать для проверки данных. Опять же, фреймворки могут показать вам лучшие практики.
Создайте объекты, которые представляют данные вашей формы, затем присоедините процессы и откройте их. Звучит гораздо больше работы, чем взлом быстрого PHP-скрипта (и это первый раз), но он многократно используется, гибок и гораздо менее подвержен ошибкам, поскольку проверка формы с помощью обычного PHP быстро превращается в код спагетти.