Nie ma lepszego sposobu, ale ponieważ jest to operacja, którą zwykle wykonujesz dość często, lepiej zautomatyzuj proces.
Większość frameworków oferuje sposób, aby analizowanie argumentów było łatwym zadaniem. Możesz w tym celu zbudować własny obiekt. Szybki i brudny przykład:
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 masowo używa tego rodzaju cukru.
Ale mówisz o czymś więcej, ze swoim „// Błąd obsługi tutaj”. Mieszasz 2 zadania: pobieranie danych i ich przetwarzanie. To wcale nie jest to samo.
Istnieją inne mechanizmy, których możesz użyć do weryfikacji danych. Ponownie frameworki mogą pokazać najlepsze praktyki.
Utwórz obiekty reprezentujące dane formularza, a następnie dołącz procesy i powróć do niego. Wydaje się to o wiele bardziej pracochłonne niż hakowanie szybkiego skryptu PHP (i jest to pierwszy raz), ale jest on wielokrotnego użytku, elastyczny i znacznie mniej podatny na błędy, ponieważ sprawdzanie poprawności formularzy za pomocą zwykłego PHP ma tendencję do szybkiego przekształcania się w kod spaguetti.