Funciones de manejo de variables
PHP Manual

empty

(PHP 4, PHP 5)

emptyDetermina si una variable está vacía

Descripción

bool empty ( mixed $var )

Determina si una variable es considerada vacía. Una variable se considera vacía si no existe si su valor es igual a FALSE. empty() no genera una advertencia si la variable no existe.

Parámetros

var

La variable que se comprueba

Nota:

empty() sólo comprueba variables ya que cualquier otra cosa producirá un error de análisis. En otras palabras, lo siguiente no funcionará: empty(trim($name)). Use en su lugar trim($name) == false.

No se genera una advertencia si la variable no existe. Esto significa que empty() es esencialmente el equivalente conciso de !isset($var) || $var == false.

Valores devueltos

Devuelve FALSE si var existe y tiene un valor no vacío, distinto de cero. De otro modo devuelve TRUE.

Las siguientes expresiones son consideradas como vacías:

Historial de cambios

Versión Descripción
5.4.0

Verificación de índices no numéricos de strings devuelve TRUE.

PHP 5.0.0

Los objetos sin propiedades ya no se consideran vacíos.

Ejemplos

Ejemplo #1 Una simple comparación empty() / isset()

<?php
$var 
0;

// Se evalúa a true ya que $var está vacia
if (empty($var)) {
    echo 
'$var es o bien 0, vacía, o no se encuentra definida en absoluto';
}

// Se evalúa como true ya que $var está definida
if (isset($var)) {
    echo 
'$var está definida a pesar que está vacía';
}
?>

Ejemplo #2 empty() en índices de string

PHP 5.4 cambia como empty() se comporta cuando se pasan índices de string.

<?php
$expected_array_got_string 
'somestring';
var_dump(empty($expected_array_got_string['some_key']));
var_dump(empty($expected_array_got_string[0]));
var_dump(empty($expected_array_got_string['0']));
var_dump(empty($expected_array_got_string[0.5]));
var_dump(empty($expected_array_got_string['0.5']));
var_dump(empty($expected_array_got_string['0 Mostel']));
?>

Muestra el ejemplo de arriba en PHP 5.3:

bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)

Muestra el ejemplo de arriba en PHP 5.4:

bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(true)

Notas

Nota: Puesto que esto es una construcción del lenguaje y no una función, no puede ser llamada usando funciones variables.

Nota:

Cuando se utiliza empty() sobre las propiedades de objetos inaccesibles, el método sobrecargado __isset() será llamado, si se declara.

Ver también


Funciones de manejo de variables
PHP Manual