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:

Antes de PHP 5.5, empty() sólo soportaba variables; cualquier otra cosa provocaría un error del intérprete. En otras palabras, lo siguiente no funcionaría: empty(trim($nombre)). En su lugar, utilice trim($nombre) == 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.5.0

empty() ahora soporta expresiones, en vez de únicamente variables.

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