É uma situação bem comum. Digamos que você tenha uma página, uma pesquisa por exemplo, para a qual você passa uma lista variável de parâmetros. Basicamente então, supomos que tenhamos passado uma lista de parâmetros semelhante a esta:
/pesquisa.php?empresa=1&departamento=2&inicial=A
Hipoteticamente com base nestes parâmetros selecionaríamos todos os funcionários da empresa 1, do departamento 2, cujo nome começa com a letra A, num sql que seria mais ou menos assim:
$sql = "SELECT * FROM funcionarios";
if (!empty($_GET['empresa'])) $sql .= " WHERE empresa = ".$_GET['empresa'];
if (!empty($_GET['departamento'])) $sql .= " AND departamento = ".$_GET['departamento'];
if (!empty($_GET['inicial'])) $sql .= " AND nome LIKE '".$_GET['inicial']."%'";
Ok, baseado no exemplo acima, vemos que o parâmetro empresa é sempre obrigatório, e que se todos os demais parâmetros necessários foram passados, então podemos fazer a pesquisa normalmente. Caso um ou outro parâmetro não seja informado nós simplesmente não incluímos ele na cláusula WHERE do SQL, mas se o empresa não for passado logicamente teremos um erro na query.
Tudo bem que o exemplo aqui traz um número pequeno de parâmetros, então é fácil fazer esta verificação um a um, e prosseguindo, caso o usuário não informe nenhum parâmetro nós não realizamos a pesquisa e retornamos para o usuário uma mensagem do tipo "Por favor, informe algum parâmetro para a pesquisa!". Como eu disse, poderíamos fazer isso assim:
if ((empty($_GET['empresa'])) && (empty($_GET['departamento'])) && (empty($_GET['inicial'])))
{
echo "Por favor, informe algum parâmetro para a pesquisa!";
}
else
{
//Faz a pesquisa normalmente [...]
}
Com poucos parâmetros tudo bem, mas imaginemos que tenhamos uma lista de uns 15 parâmetros possíveis, mas nenhum deles foi passado - ficaria uma linha enorme depois do if. Porém existe um jeito melhor de fazer isso, o PHP tem um método que verifica se qualquer coisa foi passada via GET, que seja uma única letra, quer seja toda uma grande lista de parâmetros, assim faríamos:
if (empty($_SERVER['QUERY_STRING']))
{
echo "Por favor, informe algum parâmetro para a pesquisa!";
}
else
{
//Faz a pesquisa normalmente [...]
}
Pronto, fica bem mais legível, e bem mais fácil de fazer.