isset

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

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

Описание

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

Языковая конструкция определяет, считает ли PHP переменную установленной: т. е. переменную объявили и установили для неё значение, которое отличается от 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
  • Оператор управления ошибками @