empty

(PHP 4, PHP 5, PHP 7, PHP 8)

emptyDetermina si una variable está vacía

Descripción

empty(mixed $var): bool

Determina si una variable es considerada vacía. Una variable es considerada vacía si no existe, o si su valor equivale a false. La función empty() no genera ninguna alerta si la variable no existe.

Parámetros

var

Variable a verificar.

Ninguna alerta es generada si la variable no existe. Esto significa que empty() es estrictamente equivalente a !isset($var) || $var == false. Esto se aplica asimismo a las estructuras anidadas, tales como un array multidimensional o propiedades encadenadas.

Valores devueltos

Retorna true si var no existe o tiene un valor vacío o igual a cero, es decir, que es considerada "false", ver conversión en bool. De lo contrario retorna false.

Ejemplos

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

<?php
$var
= 0;

// Evaluada como verdadera ya que $var está vacía
if (empty($var)) {
echo
'$var vale 0, está vacía, o no está definida en absoluto';
}

// Evaluada como verdadera ya que $var está definida
if (isset($var)) {
echo
'$var está definida incluso si está vacía';
}
?>

Ejemplo #2 empty() sobre posiciones en un 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 Mostel']));
?>

El resultado del ejemplo sería:

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

Ejemplo #3 empty() sobre arrays multidimensionales

<?php
$multidimensional
= [
'some' => [
'deep' => [
'nested' => 'value'
]
]
];

if (!empty(
$multidimensional['some']['some']['nested'])) {
$someVariable = $multidimensional['some']['deep']['nested'];
}

var_dump(empty($multidimensional['some-undefined-key']));
var_dump(empty($multidimensional['some']['deep']['unknown']));
var_dump(empty($multidimensional['some']['deep']['nested']));
?>

El resultado del ejemplo sería:

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

Notas

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

Nota:

Al utilizar esta función sobre propiedades de objeto inaccesibles, el método mágico __isset() será llamado, si existe.

Ver también