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, use isset
.
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 nulo
Com empty
, os seguintes itens são considerados vazios:
- "" (uma string vazia)
- 0 (0 como um inteiro)
- 0,0 (0 como flutuante)
- "0" (0 como string)
- NULO
- FALSO
- array () (um array vazio)
- var $ var; (uma variável declarada, mas sem um valor em uma classe)
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
empty () é o oposto de (boolean) var, exceto que nenhum aviso é gerado quando a variável não está definida .
Em relação ao isset
PHP Manual diz
isset () retornará FALSE se testar uma variável que foi definida como NULL
Seu código seria suficiente para:
<?php
$var = '23';
if (!empty($var)){
echo 'not empty';
}else{
echo 'is not set or empty';
}
?>
Por exemplo:
$var = "";
if(empty($var)) // true because "" is considered empty
{...}
if(isset($var)) //true because var is set
{...}
if(empty($otherVar)) //true because $otherVar is null
{...}
if(isset($otherVar)) //false because $otherVar is not set
{...}