Qual a diferença entre empty e isset e isnull
Atualizado emEm qualquer linguagem de programação é necessário ter um bom entendimento dos tipos de dados que uma variável pode assumir e quando estamos manipulando esses, é muito comum nos confundimos com o que viria a ser uma string vazia, nula ou falso e também se esse valor já está setada na memória do computador etc…
Para isso podemos contar com três funções principais são elas: empty(), isset() e is_null(). Todas elas irão fazer o trabalho de comparação e retornar um booleano TRUE ou FALSE.
Mas antes de vermos as particularidades de cada função é essencial ter um bom entendimento sobre variáveis do tipo FALSE já que todos os três métodos apresentados a seguir fazem comparação booleana.
Método empty()
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.
Usando o método empty()
Vou declarar um array com os principais valores que uma variável pode assumir e comparar seus valores se é vazio ou não.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <?php $teste= array( 'zero'= 0, 'string_vazia'= '', 'booleano'= FALSE, 'null'= NULL, 'integer'= 21, 'array'= array() ); foreach($teste as $variavel => $valor){ echo $variavel. ' tem '; var_dump( empty($valor) ); echo '<br>'; } /* ######### O que irá imprimir na tela ########## zero tem bool(true) string_vazia tem bool(true) booleano tem bool(true) null tem bool(true) integer tem bool(false) array tem bool(true) */ ?> |
Note que para cada chave do array $teste está imprimindo se o booleano é FALSE ou TRUE.
Método isset()
Verifica se a variável é definida.
Usando o método isset()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <?php $teste= array( 'zero'= 0, 'string_vazia'= '', 'booleano'= FALSE, 'null'= NULL, 'integer'= 21, 'array'= array() ); foreach($teste as $variavel => $valor){ echo $variavel. ' tem '; var_dump( isset($valor) ); echo '<br>'; } /* ######### O que irá imprimir na tela ########## zero tem bool(true) string_vazia tem bool(true) booleano tem bool(true) null tem bool(false) integer tem bool(true) array tem bool(true) */ ?> |
Método is_null()
O método is_null() informa se a variável é NULL.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <?php $teste= array( 'zero'= 0, 'string_vazia'= '', 'booleano'= FALSE, 'null'= NULL, 'integer'= 21, 'array'= array() ); foreach($teste as $variavel => $valor){ echo $variavel. ' tem '; var_dump( is_null($valor) ); echo '<br>'; } /* ######### O que irá imprimir na tela ########## zero tem bool(false) string_vazia tem bool(false) booleano tem bool(false) null tem bool(true) integer tem bool(false) array tem bool(false) */ ?> |
Seja o primeiro a comentar