isset

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

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

Описание

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

Языковая конструкция определяет, установили ли переменную. Установленная переменная — переменная, которую объявили и присвоили значение, которое не равняется null.

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

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

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

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

var

Переменная, которую требуется проверить.

vars

Дополнительные переменные.

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

Языковая конструкция возвращает true, если переменную var объявили и значение переменной не равняется null, иначе возвращает false.

Примеры

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

<?php

$var
= '';

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

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

$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
  • Оператор управления ошибками @