isset

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

issetВизначає, чи для змінної встановлено значення та воно не рівне null

Опис

isset(mixed $var, mixed $... = ?): bool

Визначає, чи для змінної встановлено значення та воно не рівне null.

Якщо змінну було видалено через unset(), то вона більше не вважається встановленою. При перевірці змінної зі значенням null, isset() буде повертати false. Також зауважте, що символ null ("\0") не є еквівалентом PHP-константі null.

Якщо буде передаватись кілька параметрів, то isset() буде повертати true, тільки якщо всі параметри мають встановлене значення. Оцінювання відбуватиметься зліва на право та зупинеться там, де зустріне змінну, для якої не встановлено значення.

Параметри

var

Змінна, яка буде перевірятись.

...

Інша змінна ...

Значення, що повертаються

Повертає true, якщо var існує та має інше значення, ніж null, в противному разі - false.

Журнал змін

Версія Опис
5.4.0

Перевірка при нечисловому зміщенні для рядка, тепер повертає false.

Приклади

Приклад #1 Використання isset()

<?php

$var
= '';

// Цей вираз оцінюватиметься як дійсний, а тому текст буде надруковано.
if (isset($var)) {
echo
"Цій змінній встановлено значення, отже текст надрукується.";
}

// В наступних прикладах ми будемо використовувати var_dump() для виводу
// значень, що повертає isset().

$a = "перевірка";
$b = "іншаперевірка";

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 5.4 змінює те, як 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']));
?>

В PHP 5.3 поданий вище приклад виведе:

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

В PHP 5.4 поданий вище приклад виведе:

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

Примітки

Увага

isset() працює тільки зі змінними, передача будь-чого іншого спричинятиме виведення синтаксичної помилки. Для перевірки, чи встановлено значення для констант, використовуйте функцію defined().

Зауваження: Оскільки це мовна конструкція, а не функція, її не можна викликати через змінні-функції або названі параметри.

Зауваження:

При використанні isset() для перевірки недоступних властивостей об'єкта, буде викликатись метод __isset(), якщо його оголошено.

Прогляньте також