Resumo : neste tutorial, você aprenderá como usar a isset()
construção PHP para verificar se uma variável está definida e não nula.
Introdução à construção isset() do PHP
PHP isset()
retorna true
se uma variável estiver definida e não null .
isset(mixed $var): bool
Linguagem de código: PHP ( php )
A isset()
é uma construção de linguagem, não uma função . Portanto, você não pode atribuí-lo a uma variável , retorná-lo de uma função ou chamá-lo dinamicamente por meio de uma variável function .
O exemplo a seguir resultará em um erro:
<?php
$f = isset;
Linguagem de código: PHP ( php )
Erro:
PHP Parse error: syntax error, unexpected ';', expecting '('
Linguagem de código: PHP ( php )
Para contornar isso, você pode criar uma função que usa a isset()
construção e chamar essa função usando as funções variáveis. Por exemplo:
<?php
function isset_and_not_null($var): bool
{
return isset($var);
}
Linguagem de código: HTML, XML ( xml )
Ou será mais curto se você usar a sintaxe da função de seta :
$isset = fn($var) => isset($var);
var_dump($isset($count)) // false
Linguagem de código: PHP ( php )
Observe que você aprenderá sobre a sintaxe da função de seta no tutorial posterior .
O seguinte retorna false
porque a $count
variável não foi declarada:
<?php
var_dump(isset($count));
Linguagem de código: PHP ( php )
Saída:
bool(false)
Linguagem de código: PHP ( php )
O exemplo a seguir retorna true
porque a $count
variável é declarada e seu valor é diferente de nulo:
<?php
$count = 0;
var_dump(isset($count));
Linguagem de código: PHP ( php )
Saída:
bool(true)
Linguagem de código: PHP ( php )
Se você atribuir null
a uma variável e passá-la para isset()
, o isset()
retornará false
:
<?php
$count = null
var_dump(isset($count));
Linguagem de código: PHP ( php )
Saída:
bool(false)
Linguagem de código: PHP ( php )
Se você desmarcar uma variável, a variável ficará desmarcada. Portanto, o isset()
retornará false
:
<?php
$count = 0;
unset($count);
var_dump(isset($count));
Linguagem de código: PHP ( php )
Saída:
bool(false)
Linguagem de código: PHP ( php )
Usando PHP isset com array
Se você passar um elemento de array para isset()
, ele retornará true
. Por exemplo:
<?php
$colors = ['primary' => 'blue'];
var_dump(isset($colors['primary']));
Linguagem de código: PHP ( php )
Saída:
bool(true)
Linguagem de código: PHP ( php )
No entanto, se você passar um elemento inexistente para isset()
, ele retornará false
. Por exemplo:
<?php
$colors = ['primary' => 'blue'];
var_dump(isset($colors['secondary']));
Linguagem de código: PHP ( php )
Saída:
bool(true)
Linguagem de código: PHP ( php )
Se você passar um elemento de array com valor nulo para isset()
, The isset()
retornará false
:
<?php
$colors = ['primary' => 'blue','secondary' => null];
var_dump(isset($colors['secondary']));
Linguagem de código: PHP ( php )
Saída:
bool(false)
Linguagem de código: PHP ( php )
PHP isset() com deslocamentos de string
O isset()
funciona com deslocamentos de string. Por exemplo:
<?php
$message = 'Hello';
var_dump(isset($message[0]));
Linguagem de código: PHP ( php )
Saída:
bool(true)
Linguagem de código: PHP ( php )
Se você passar um elemento string com um deslocamento inválido, isset()
retornará false
. Por exemplo:
<?php
$message = 'Hello';
var_dump(isset($message[strlen($message)]));
Linguagem de código: PHP ( php )
Saída:
bool(false)
Linguagem de código: PHP ( php )
PHP isset() com múltiplas variáveis
O isset()
aceita múltiplas variáveis e retorna true
se todas as variáveis estiverem definidas. O isset()
avalia as variáveis da esquerda para a direita e para quando encontra uma variável não definida.
isset(mixed $v1, mixed $v2, ...): bool
Linguagem de código: PHP ( php )
O exemplo a seguir retorna true
porque todas as variáveis $x
e $y
estão $z
definidas:
<?php
$x = 10;
$y = 20;
$z = 30;
var_dump(isset($x, $y, $z));
Linguagem de código: PHP ( php )
Saída:
bool(true)
Linguagem de código: PHP ( php )
No entanto, o exemplo a seguir retorna false
porque a variável $y
é null
, que não está definida. Além disso, isset()
não avaliará a variável $z
:
<?php
$x = 10;
$y = null;
$z = 30;
var_dump(isset($x, $y, $z));
Linguagem de código: PHP ( php )
Saída:
bool(false)
Linguagem de código: PHP ( php )
Resumo
isset()
é uma construção de linguagem, não uma função.isset()
retornatrue
se uma variável estiver definida e não nula.isset()
retornatrue
se um elemento da matriz existir e não for nulo.isset()
retornatrue
se um índice de string for válido ou falso caso contrário.isset()
retornatrue
se todas as variáveis estiverem definidas e não nulas. Ele irá parar de avaliar quando encontrar uma variável não definida.