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

Inicio / 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

Hola! Soy Mauro Chojrin, estudié la Lic. en Ciencias de la Computación en la UBA.

Me desempeño como como docente de programación desde el año 1997.

Pasé por diferentes instituciones (Escuela Técnica ORT, Digital House, EducacionIT, ITMaster, Escuela DaVinci entre otros).

Actualmente coordino el desarrollo de proyectos web en https://leewayweb.com y los cursos dictados en Leeway Academy

Deja un comentario

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