Depende de lo que esté buscando, si solo está buscando para ver si está vacío, use, empty
ya que verifica si también está configurado, si desea saber si algo está configurado o no isset
.
Empty
comprueba si la variable está configurada y si lo está, la comprueba en busca de nulos, "", 0, etc.
Isset
solo verifica si está configurado, podría ser cualquier cosa que no sea nula
Con empty
, las siguientes cosas se consideran vacías:
- "" (una cadena vacía)
- 0 (0 como un número entero)
- 0.0 (0 como flotante)
- "0" (0 como una cadena)
- NULO
- FALSO
- array () (una matriz vacía)
- var $ var; (una variable declarada, pero sin un valor en una clase)
De http://php.net/manual/en/function.empty.php
Como se mencionó en los comentarios, la falta de advertencia también es importante con vacío ()
PHP Manual dice
empty () es lo opuesto a (boolean) var, excepto que no se genera ninguna advertencia cuando la variable no está configurada .
Respecto a isset
PHP Manual dice
isset () devolverá FALSE si se prueba una variable que se ha establecido en NULL
Su código estaría bien como:
<?php
$var = '23';
if (!empty($var)){
echo 'not empty';
}else{
echo 'is not set or empty';
}
?>
Por ejemplo:
$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
{...}