Funções para Manipulação de variáveis
PHP Manual

empty

(PHP 4, PHP 5, PHP 7)

emptyDetermina se a variável é vazia

Descrição

bool empty ( mixed $var )

Determina se uma variável é considerada vazia. Uma variável é considerada vazia se não existir ou seu valor é igual 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

Nota:

Em versões anteriores ao PHP 5.5, a função empty() somente suportava variáveis; qualquer outra coisa resultaria em um erro de interpretação. Em outras palavras, o código a seguir não funcionará: empty(trim($name)). Em substituição, use trim($name) == false.

Nenhum aviso é gerado se a variável não existir. Isso significa que a função empty() é essencialmente equivalente a !isset($var) || $var == false.

Valor Retornado

Retorna FALSE se var existir e não estiver vazia e não conter um valor zerado. Caso contrário retornará TRUE.

O que é visto abaixo é considerado vazio:

Changelog

Versão Descrição
5.5.0

A função empty() agora suporta expressões, em vez de somente variáveis.

5.4.0

Checar deslocamentos de strings não numéricos retorna TRUE.

Exemplos

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

<?php
$var 
0;

// Evaluates to true because $var is empty
if (empty($var)) {
    echo 
'$var is either 0, empty, or not set at all';
}

// Evaluates as true because $var is set
if (isset($var)) {
    echo 
'$var is set even though it is empty';
}
?>

Exemplo #2 Função empty() em Deslocamento de String

O PHP 5.4 modifica como empty() se comporta quando passado deslocamentos 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']));
?>

O exemplo acima irá imprimir no PHP 5.3:

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

O exemplo acima irá imprimir no PHP 5.4:

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

Notas

Nota: Este é um construtor de linguagem e não uma função, por isso não é possível chamá-lo através de funções variáveis

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


Funções para Manipulação de variáveis
PHP Manual