(PHP 4, PHP 5, PHP 7)
empty — Determina se a variável é vazia
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.
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.
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:
NULL
FALSE
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 |
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)
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.