A função filter_has_var() verifica se dentro do formulário html existe uma variável e que seja de determinado tipo. Esse tipo pode ser: INPUT_POST, INPUT_GET, INPUT_COOKIE, INPUT_SERVER ou INPUT_ENV.
A função isset() retorna true se uma variável for declarada e não null. Porém, isset() não verifica se a variável sendo verificada existe dentro do formulário. Por exemplo, isset() retornará true se a variável estiver fora do formulário.
Sintaxe para filter_has_var()
A forma de uso de filter_has_var() é
filter_has_var(INPUT_POST, 'endereco')
Acima usei INPUT_POST, mas poderia usar INPUT_GET, INPUT_COOKIE, INPUT_SERVER, or INPUT_ENV
‘nome‘ é o nome da variável recebida de um formulário através do método POST.
Sintaxe para isset()
A sintaxe para isset() é
isset($variavel)
Se a variável estiver declarada o retorno será true.
Exemplo
<?php
$_POST['endereco'] = "Rua das madames";
if(isset($_POST['endereco'])) {
echo "a variavel endereco existe";
} else {
echo "endereco não está declarado";
}
echo "<br>";
if(filter_has_var(INPUT_POST, 'endereco')) {
echo "endereco está dentro do form";
} else {
echo "endereco não existe ou não está dentro do form";
}
?>
resultado:
a variavel endereco existe
endereco não existe ou não está dentro do form
A primeira linha retorna true porque realmente a variável $_POST[‘endereco’] existe
A segunda retorna false porque a variável $_POST[‘endereco’] existe mas não dentro de um formulário.
Comment on “PHP: Usando as Funções filter_has_var() e isset()”