array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'function.isset.php', 1 => 'isset', ), 'up' => array ( 0 => 'ref.var.php', 1 => 'Funções para Manipulação de variáveis', ), 'prev' => array ( 0 => 'function.is-string.php', 1 => 'is_string', ), 'next' => array ( 0 => 'function.print-r.php', 1 => 'print_r', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'pt_BR', 'path' => 'reference/var/functions/isset.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
isset — Determina se uma variável está declarada e é diferente de null
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.
var
A variável a ser verificada.
vars
Mais variáveis a verificar.
Retorna true
se var
existe e tem
qualquer valor diferente de null
. false
caso contrário.
Exemplo #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
?>
Exemplo #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)
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().
Nota: 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.
Nota:
Ao usar isset() em propriedades inacessíveis de objetos, o método de sobrecarga __isset() será chamado, se declarado.