isset

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

issetОпределяет, была ли установлена переменная значением, отличным от null

Описание

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

Определяет, была ли установлена переменная значением, отличным от null.

Если переменная была удалена через языковую конструкцию unset(), то переменная больше не считается установленной.

Языковая конструкция isset() вернёт false при проверке переменной, для которой было установлено значение null. Учтите также, что NULL-символ («\0») не равен константе null в PHP.

Если были переданы несколько параметров, то конструкция isset() вернёт true только тогда, когда все параметры определены. Проверка выполняется слева направо и заканчивается, как только будет встречена неопределённая переменная.

Список параметров

var

Проверяемая переменная.

vars

Следующие переменные.

Возвращаемые значения

Возвращает true, если переданная в параметр var переменная определена и её значение отличается от null. В остальных случаях возвращает false.

Примеры

Пример #1 Пример использования языковой конструкции isset()

<?php

$var
= '';

// Проверка вернёт TRUE, поэтому текст будет напечатан.
if (isset($var)) {
echo
"Эта переменная определена, поэтому меня и напечатали.";
}

// В следующем примере вызывается функция var_dump для вывода
// значения, возвращаемого конструкцией isset().

$a = "test";
$b = "anothertest";

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

unset ($a);

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

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

?>

Конструкция также работает с элементами массивов:

<?php

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

var_dump(isset($a['test'])); // TRUE
var_dump(isset($a['foo'])); // FALSE
var_dump(isset($a['hello'])); // FALSE

// Элемент с ключом «hello» равен NULL, поэтому он считается неопределённым
// Если нужно проверить существование ключей со значением NULL, делают так:
var_dump(array_key_exists('hello', $a)); // TRUE

// Проверка вложенных элементов массива
var_dump(isset($a['pie']['a'])); // TRUE
var_dump(isset($a['pie']['b'])); // FALSE
var_dump(isset($a['cake']['a']['b'])); // FALSE

?>

Пример #2 Языковая конструкция isset() и строковые индексы

<?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']));
?>

Результат выполнения приведённого примера:

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

Примечания

Внимание

Конструкция isset() работает только с переменными, поэтому передача в качестве аргументов любых других значений приведёт к ошибке парсинга. Для проверки определения констант пользуются функцией defined().

Замечание: Поскольку это языковая конструкция, а не функция, её нельзя вызывать как переменную функцию или передавать как именованный аргумент.

Замечание:

При вызове конструкции isset() на недоступных свойствах объекта, будет вызываться метод перегрузки __isset(), если он существует.

Смотрите также

  • empty() - Проверяет, пуста ли переменная
  • __isset()
  • unset() - Удаляет переменную
  • defined() - Проверяет, существует ли константа с заданным именем
  • Таблица сравнения типов
  • array_key_exists() - Проверяет, существует ли в массиве заданный ключ или индекс
  • is_null() - Проверяет, равно ли значение переменной null
  • Оператор управления ошибками @