função empty do PHP – Como funciona e como utilizar

A função empty do PHP realmente é uma função muito útil no dia a dia da programação PHP. Ela serve para verificar se uma variável existe (esta definida) e ainda por cima verifica se a variável esta vazia.
Normalmente nós precisamos verificar se a variável existe e depois verificar se ela esta vazia:

if(isset($_POST['algo']))
{
	if($_POST['algo'] == '')
		echo "POST['algo'] esta vazio";
	else
		echo "POST['algo'] não esta vazio";
}
else
	echo "POST['algo'] não existe ou não foi definido";


Com a função empty do PHP, nós podemos de uma vez só fazer essas duas verificações:

if(empty($_POST['algo']))
	echo "POST['algo'] esta vazio ou não foi definido";
else
	echo "POST['algo'] existe e não esta vazio";

A função empty não vai gerar erro, e nem warning no caso da variável não existir, o que aconteceria caso fizéssemos a verificação sem a função isset:

if($_POST['algo'] == "")
	echo "POST['algo'] esta vazio";
	//geraria um erro, caso $_POST['algo'] não estivesse definido

Pra mim a função empty faz mais sentido do que usar a função isset, já que só iremos manipular variáveis, se elas existirem e tiverem valor.
Você também pode usar a negação da função empty, ja que este é o intuito:

if(!empty($algo))
	echo $algo;

Traduzindo o código acima, seria + ou – isso: “se a variável algo existir e não estiver vazia, escreva a variável algo”.

Uma nota importante sobre a função empty, é que ela só verifica variáveis, então não adianta passar um retorno de função, como usualmente programadores fazem pra economizar código. Por exemplo:

if(empty(str_replace('algo','texto','algo de parâmetro')))
//isto irá gerar um erro
$string = str_replace('algo','texto','algo de parâmetro');
if(empty($string)) // assim funciona

Esta função também verifica se um array esta vazio. Exemplo:

$vetor = array();
var_dump(empty($vetor)); // imprime true, ou seja, o vetor esta vazio
$vetor[0] = "Algo";
var_dump(empty($vetor)); // imprime false, o vetor não esta mais vazio
var_dump(empty($vetor[1])); // imprime true, a posição 1 do vetor esta vazia

Lembrando que a função empty considera todos esses valores como vazios: null, false, 0(como int), ‘0’ (como string), “” (String vazia), array() (array vazio), var $variavel (existe ma sem valor definido).
Portanto, se você estiver trabalhando com números por exemplo, em contas que podem ter resultado 0, não utilize a função empty, pois ela vai retornar true, que esta vazio.
Só relembrando, a função isset apenas verifica se a variável existe, ja a função empty verifica se ela existe e se tem algum valor setado.
Espero que vocês tenham gostado, até mais.

Este conteúdo foi útil para você? Então ajude este blog a continuar no ar com novos conteúdos!
Basta clicar em algum anúncio da header ou sidebar e aguardar pelo menos 10 segundos