DEV Community

Cover image for [PHP curtas] — Funções empty e isset: Esse valor realmente existe?
Tadeu Barbosa
Tadeu Barbosa

Posted on

3 1

[PHP curtas] — Funções empty e isset: Esse valor realmente existe?

Como podemos definir se uma variável realmente existe ou só está vazia no PHP? Vem ver! É curta!

O PHP possui algumas funções próprias, dentre essas: empty() e isset(), ambas usadas para testar se uma variável foi inicializada, ou seja, se ela aponta para um endereço na memória. Por fim retorna um booleano baseado nessa existência.

A função empty

No manual temos:

empty(mixed $var): bool
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.

Ou seja, o empty() somente verifica se uma variável é considerada vazia. Ainda no manual, temos as seguintes definições de vazio:

  • "" (uma string vazia)
  • 0 (0 como um inteiro)
  • 0.0 (0 como um ponto flutuante)
  • "0" (0 como uma string)
  • null
  • false
  • array() (um array vazio)
  • $var; (uma variável declarada, mas sem valor)

A função isset

isset(mixed $var, mixed $var = ?, $... = ?): bool

Já o isset() verifica somente se existe um endereço para aquele valor na memória.

Alguns pontos importantes:

  • Você pode passar quantos parâmetros quiser para a função: isset($valor1, $valor2, ..., $valor100), porém deve-se lembrar que a função retornará true somente se todos os valores forem definidos. Se o $valor2 não for definido, por exemplo, a função retornará false!
  • Caso você utilize a função unset() para destruir um valor, logo a função isset() retornará false.

Como no exemplo da imagem do cabeçalho. A função isset() retornará true para uma string vazia (""), mas retornará false para um null. Quando setamos null, aquele valor não está/estará mais na memória.

$valor = '';

if (empty($valor)) {
  echo 'Sim! Estou vazio!' . PHP_EOL;
}

if (isset($valor)) {
  echo 'Sim! Eu existo na memória!' . PHP_EOL;
}

$valor = null;

if (empty($valor)) {
  echo 'Sim! Estou vazio novamente!' . PHP_EOL;
}

if (isset($valor)) {
  echo 'Ops! Eu não vou entrar aqui!';
}


// printa:
//
// Sim! Estou vazio!
// Sim! Eu existo na memória!
// Sim! Estou vazio novamente!
Enter fullscreen mode Exit fullscreen mode

É isso! Espero que tenha gostado! :D

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more