Você poderia me ajudar a melhorar meu estilo de codificação? :) Em algumas tarefas eu preciso verificar - a variável está vazia ou contém algo. Para resolver essa tarefa, geralmente faço o seguinte.
Verifique - esta variável está definida ou não? Se estiver definido - eu verifico - está vazio ou não?
<?php
$var = '23';
if (isset($var)&&!empty($var)){
echo 'not empty';
}else{
echo 'is not set or empty';
}
?>
E eu tenho uma pergunta - devo usar isset () antes de empty () - é necessário? TIA!
Respostas:
Depende do que você está procurando, se você está apenas olhando para ver se está vazio é só usar,
empty
pois ele verifica se está configurado também, se você quer saber se algo está configurado ou não, useisset
.Empty
verifica se a variável está definida e se estiver, verifica se há nulo, "", 0, etc.Isset
apenas verifica se está definido, pode ser algo diferente de nuloCom
empty
, os seguintes itens são considerados vazios:De http://php.net/manual/en/function.empty.php
Conforme mencionado nos comentários, a falta de aviso também é importante com o vazio ()
PHP Manual diz
Em relação ao isset
PHP Manual diz
Seu código seria suficiente para:
Por exemplo:
fonte
empty
: Não lança um aviso quando a variável testada não existe. Esse é o objetivo dessa função, caso contrário, é idêntico a== false
.isset
em uma variável nula (e existente) será avaliada comofalse
.No seu caso particular:
if ($var)
.Você precisa usar
isset
se não souber se a variável existe ou não. Porém, como você o declarou na primeira linha, você sabe que ele existe, portanto, não precisa, não, não deve usarisset
.O mesmo vale para
empty
, só queempty
também combina uma verificação da veracidade do valor.empty
é equivalente a!isset($var) || !$var
e!empty
é equivalente aisset($var) && $var
, ouisset($var) && $var == true
.Se você quiser apenas testar uma variável que deve existir para veracidade ,
if ($var)
é perfeitamente adequado e direto ao ponto.fonte
!empty is equivalent to isset($var) && $var
, seria incrível. Obrigado @decezeVocê pode apenas usar empty () - como visto na documentação , ele retornará falso se a variável não tiver valor.
Um exemplo nessa mesma página:
Você pode usar isset se quiser apenas saber se não é NULL. Caso contrário, parece que empty () pode ser usado sozinho.
fonte
$var = null; isset( $var ) == true
.Aqui estão as saídas de
isset()
eempty()
para as 4 possibilidades: não declarado, nulo, falso e verdadeiro.Você notará que todos os resultados de 'isset' são opostos aos resultados 'vazios', exceto pelo caso
$b=false
. Todos os valores (exceto nulo que não é um valor, mas um não valor) avaliados como falso retornarão verdadeiro quando testado porisset
e falso quando testado por 'vazio'.Portanto, use
isset()
quando estiver preocupado com a existência de uma variável. E useempty
quando estiver testando para verdadeiro ou falso. Se o tipo real de assuntos vazio, usois_null
e===0
,===false
,===''
.fonte
Vazio retorna verdadeiro se var não estiver definido. Mas isset retorna verdadeiro mesmo se var não estiver vazio.
fonte
Este é um exemplo simples. Espero que ajude.
editar: adicionado
isset
no caso de uma variável não ser definida como acima, causaria um erro, verificando se seu primeiro conjunto, pelo menos, ajudará a remover algumas dores de cabeça no caminho.fonte
strlen
abaixo de zero? Eu quero ver essa corda.