Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal !!!
Qual a melhor função para verificar se foi atribuido um valor para a variável. isset ou empty ? Porque?
Abraços e Obrigado.
Obrigado Williwam .
Resolvido.
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Quando se trata de formulários e etc, eu gosto de usar as duas em conjunto.
Tipo
if ( isset($foo) AND !empty($foo) )
É importante entender a diferença entre eles...
$dado = '';
echo (isset($dado)) ? 'Está setado' : 'Não está setado';
echo (empty($dado)) ? 'Está vazio' : 'Não está vazio';
Vai imprimir 'Está setado Está vazio'.
Como o próprio nome diz, isset testa se está setado. empty, testa se está vazio.
>
Quando se trata de formulários e etc, eu gosto de usar as duas em conjunto.
Isto é importante, pelo seguinte
if(empty($_POST['nome']))
Isto pode gerar um NOTICE, porque se está testando uma variável que não existe.
Sábado estava falando com o João Batista e ele me sugeriu uma outra forma de fazer o mesmo teste, ao invés de usar isset e empty, usar assim...
if((bool)($tmp = &$_POST['Nome']))
Não testei, mas ele testou... hehe
Carlos Eduardo
Boa pergunta, ótims respostas!
Pelo que você descreveu seria empty()
por questão de lógica 'somente'. Não dá pra falar que um é melhor que outro, e sim que existe momentos em que você usa um, e momentos em que você usa o outro.
Uma variável pode existir, mas conter valor nulo, por isso, que o que você descreveu tem que ser verificado com o empty()