isset

(PHP 4, PHP 5, PHP 7, PHP 8)

issetDetermina se uma variável está declarada e é diferente de null

Descrição

isset(mixed $var, mixed ...$vars): bool

Determina se uma variável é considerada definida, isto é, está declarada e é diferente de null.

Se a variável tornou-se indefinida com a função unset(), ela não é mais considerada definida.

isset() retornará false ao verificar uma variável que foi atribuída com o valor null. Note também que um caractere nulo ("\0") não é equivalente à constante null do PHP.

Se múltiplos parâmetros forem fornecidos então isset() retornará true apenas se todos os parâmetros forem considerados definidos. A avaliação ocorre da esquerda para a direira e para assim que uma variável indefinida for encontrada.

Parâmetros

var

A variável a ser verificada.

vars

Mais variáveis a verificar.

Valor Retornado

Retorna true se var existe e tem qualquer valor diferente de null. false caso contrário.

Exemplos

Example #1 Exemplos de isset()

<?php

$var = '';

// Isto será avaliado como VERDADEIRO e por isso o texto será mostrado.
if (isset($var)) {
    echo "Esta variável está definida então vou imprimir.";
}

// Nos próximos exemplos, será utilizado var_dump() para mostrar
// o valor de retorno de isset().

$a = "teste";
$b = "outroteste";

var_dump(isset($a));     // VERDADEIRO
var_dump(isset($a, $b)); // VERDADEIRO

unset ($a);

var_dump(isset($a));     // FALSO
var_dump(isset($a, $b)); // FALSO

$foo = NULL;
var_dump(isset($foo));   // FALSO

?>

Isto também funciona para elementos em arrays:

<?php

$a = array ('test' => 1, 'hello' => NULL, 'pie' => array('a' => 'apple'));

var_dump(isset($a['test']));            // VERDADEIRO
var_dump(isset($a['foo']));             // FALSO
var_dump(isset($a['hello']));           // FALSO

// A chave 'hello' é igual a NULO então é considerada indefinida
// Se deseja-se verificar por chaves de valores NULOS, deve-se tentar:
var_dump(array_key_exists('hello', $a)); // VERDADEIRO

// Verificando valores de array em maior profundidade
var_dump(isset($a['pie']['a']));        // VERDADEIRO
var_dump(isset($a['pie']['b']));        // FALSO
var_dump(isset($a['cake']['a']['b']));  // FALSO

?>

Example #2 isset() em Deslocamento de Strings

<?php
$expected_array_got_string = 'somestring';
var_dump(isset($expected_array_got_string['some_key']));
var_dump(isset($expected_array_got_string[0]));
var_dump(isset($expected_array_got_string['0']));
var_dump(isset($expected_array_got_string[0.5]));
var_dump(isset($expected_array_got_string['0.5']));
var_dump(isset($expected_array_got_string['0 Mostel']));
?>

O exemplo acima produzirá:

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

Notas

Warning

isset() somente funciona com variáveis, pois passar qualquer outra coisa resultará em erro de interpretação. Para verificar se constantes estão definidas, use a função defined().

Note: Como esta é uma construção da linguagem e não uma função, ela não pode ser chamada usando funções variáveis ou argumentos nomeados.

Note:

Ao usar isset() em propriedades inacessíveis de objetos, o método de sobrecarga __isset() será chamado, se declarado.

Veja Também