Cuál es la diferencia entre isset() y empty()

Home / Cómo hacer para... / Cuál es la diferencia entre isset() y empty()

Empiezo por las formalidades:

Ambas son funciones del lenguaje.

isset informa si un identificador (el nombre de una variable) está definido o no.

empty indica si el valor asociado a un identificador es o no vacío.

Veamos algunos ejemplos para aclarar el punto:

$a = 0;

if (empty($a)) {
  echo 'empty'.PHP_EOL;
}

if (isset($a)) {
  echo 'isset'.PHP_EOL;
}

Este código dará como salida:

empty

isset

Si se lo ejecuta desde la línea de comandos.

Este otro

if (isset($a)) {
  echo 'isset'.PHP_EOL;
}

$a = 0;

if (empty($a)) {
  echo 'empty'.PHP_EOL;
}

Mostrará en cambio:

empty

Ya que la variable $a recién se define después de la primera verificación.

Es interesante ver el siguiente ejemplo:

if (isset($a)) {
  echo 'isset'.PHP_EOL;
}

if (empty($a)) {
  echo 'empty'.PHP_EOL;
}

Que también dará como resultado

empty

En definitiva, podrías pensar que !isset() es un caso especial de empty().

Respecto de los valores que PHP considera como vacío, son estos:

  • 0
  • null
  • false
  • “”

¿Me olvidé de algo importante?

mchojrin

CEO at Leeway
Mauro es Lic. en Ciencias de la Computación.
Su carrera como docente de programación se inició en el año 1997 en la Escuela Técnica ORT.
Actualmente coordina el desarrollo de proyectos web en Leeway y los cursos dictados en la Leeway Academy

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *