PHP isset

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 truese uma variável estiver definida e não null .

isset(mixed $var): boolLinguagem 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)) // falseLinguagem de código:  PHP  ( php )

Observe que você aprenderá sobre a sintaxe da função de seta no tutorial posterior .

O seguinte retorna falseporque a $countvariá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 trueporque a $countvariá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 nulla 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 truese 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, ...): boolLinguagem de código:  PHP  ( php )

O exemplo a seguir retorna trueporque todas as variáveis $x​​e $yestão $zdefinidas:

<?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 falseporque 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()retorna truese uma variável estiver definida e não nula.
  • isset()retorna truese um elemento da matriz existir e não for nulo.
  • isset()retorna truese um índice de string for válido ou falso caso contrário.
  • isset()retorna truese todas as variáveis ​​​​estiverem definidas e não nulas. Ele irá parar de avaliar quando encontrar uma variável não definida.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *