empty

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

emptyDetermina se uma variável está vazia

Descrição

empty(mixed $var): bool

Determina se uma variável é considerada vazia. Uma variável é considerada vazia se não existir ou seu valor for igual a false. A função empty() não gera um aviso se a variável não existir.

Parâmetros

var

Variável a ser verificada

Nenhum aviso é gerado se a variável não existir. Isso significa que a função empty() é essencialmente o equivalente sucinto de !isset($var) || $var == false. Isto também se aplica a estruturas aninhadas, tais como um array multidimensional ou propriedades em encadeadas.

Valor Retornado

Retorna true se var não existir ou se tiver um valor que é vazio ou igual a zero. Consulte conversão para booleano. Caso contrário, retorna false.

Exemplos

Exemplo #1 Uma simples comparação entre as funções empty() / isset().

<?php
$var
= 0;

// Avaliado como verdadeiro porque $var está vazia
if (empty($var)) {
echo
'$var é 0, vazia ou não definida';
}

// Avaliado como verdadeiro porque $var está definida
if (isset($var)) {
echo
'$var está definida embora esteja vazia';
}
?>

Exemplo #2 Função empty() em posições 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 Mostel']));
?>

O exemplo acima produzirá:

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

Exemplo #3 empty() on array multidimensional

<?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']));
?>

O exemplo acima produzirá:

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

Notas

Nota: Como esta é uma construção da linguagem e não uma função, ela não pode ser chamada usando funções variáveis ou argumentos nomeados.

Nota:

Ao utilizar a função empty() em propriedades de objetos inacessíveis, o método de sobrecarga __isset() será chamado, se declarado.

Veja Também