PHP isset() Function
Check whether a variable is empty. Also check whether the variable is set/declared:
$a = 0;
// True because $a is set
if (isset($a)) echo «Variable ‘a’ is set.
«;
>
?php
$b = null;
// False because $b is NULL
if (isset($b)) echo «Variable ‘b’ is set.»;
>
?>
Definition and Usage
The isset() function checks whether a variable is set, which means that it has to be declared and is not NULL.
This function returns true if the variable exists and is not NULL, otherwise it returns false.
Note: If multiple variables are supplied, then this function will return true only if all of the variables are set.
Tip: A variable can be unset with the unset() function.
Syntax
Parameter Values
Parameter | Description |
---|---|
variable | Required. Specifies the variable to check |
. | Optional. Another variable to check |
Technical Details
Return Value: | TRUE if variable exists and is not NULL, FALSE otherwise |
---|---|
Return Type: | Boolean |
PHP Version: | 4.0+ |
PHP Changelog: | PHP 5.4: Non-numeric offsets of strings now returns FALSE |
❮ PHP Variable Handling Reference
isset
Determine if a variable is considered set, this means if a variable is declared and is different than null .
If a variable has been unset with the unset() function, it is no longer considered to be set.
isset() will return false when checking a variable that has been assigned to null . Also note that a null character ( «\0» ) is not equivalent to the PHP null constant.
If multiple parameters are supplied then isset() will return true only if all of the parameters are considered set. Evaluation goes from left to right and stops as soon as an unset variable is encountered.
Parameters
The variable to be checked.
Return Values
Returns true if var exists and has any value other than null . false otherwise.
Examples
Example #1 isset() Examples
// This will evaluate to TRUE so the text will be printed.
if (isset( $var )) echo «This var is set so I will print.» ;
>
// In the next examples we’ll use var_dump to output
// the return value of isset().
var_dump (isset( $a )); // TRUE
var_dump (isset( $a , $b )); // TRUE
var_dump (isset( $a )); // FALSE
var_dump (isset( $a , $b )); // FALSE
$foo = NULL ;
var_dump (isset( $foo )); // FALSE
This also work for elements in arrays:
$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
// The key ‘hello’ equals NULL so is considered unset
// If you want to check for NULL key values then try:
var_dump ( array_key_exists ( ‘hello’ , $a )); // TRUE
// Checking deeper array values
var_dump (isset( $a [ ‘pie’ ][ ‘a’ ])); // TRUE
var_dump (isset( $a [ ‘pie’ ][ ‘b’ ])); // FALSE
var_dump (isset( $a [ ‘cake’ ][ ‘a’ ][ ‘b’ ])); // FALSE
Example #2 isset() on String Offsets
$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
The above example will output:
bool(false) bool(true) bool(true) bool(true) bool(false) bool(false)
Notes
isset() only works with variables as passing anything else will result in a parse error. For checking if constants are set use the defined() function.
Note: Because this is a language construct and not a function, it cannot be called using variable functions, or named arguments.
Note:
When using isset() on inaccessible object properties, the __isset() overloading method will be called, if declared.
See Also
- empty() — Determine whether a variable is empty
- __isset()
- unset() — Unset a given variable
- defined() — Checks whether a given named constant exists
- the type comparison tables
- array_key_exists() — Checks if the given key or index exists in the array
- is_null() — Finds whether a variable is null
- the error control @ operator
isset
Если переменная была удалена с помощью unset() , то она больше не считается установленной. isset() вернет FALSE , если проверяемая переменная имеет значение NULL . Следует помнить, что NULL -байт («\0») не является эквивалентом константе PHP NULL .
Если были переданы несколько параметров, то isset() вернет TRUE только в том случае, если все параметры определены. Проверка происходит слева направо и заканчивается, как только будет встречена неопределенная переменная.
Список параметров
Возвращаемые значения
Возвращает TRUE , если var определена и значение отличное от NULL , и FALSE в противном случае.
Список изменений
Проверка нечислового индекса строки теперь возвращает FALSE .
Примеры
Пример #1 Пример использования isset()
// Проверка вернет TRUE, поэтому текст будет напечатан.
if (isset( $var )) echo «Эта переменная определена, поэтому меня и напечатали.» ;
>
// В следующем примере мы используем var_dump для вывода
// значения, возвращаемого isset().
var_dump (isset( $a )); // TRUE
var_dump (isset( $a , $b )); // TRUE
var_dump (isset( $a )); // FALSE
var_dump (isset( $a , $b )); // FALSE
$foo = NULL ;
var_dump (isset( $foo )); // FALSE
Функция также работает с элементами массивов:
$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() .
$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
Результат выполнения данного примера в 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(), если он существует.
Смотрите также
- empty() — Проверяет, пуста ли переменная
- __isset()
- unset() — Удаляет переменную
- defined() — Проверяет существование указанной именованной константы
- Таблица сравнения типов
- array_key_exists() — Проверяет, присутствует ли в массиве указанный ключ или индекс
- is_null() — Проверяет, является ли значение переменной равным NULL
- Оператор управления ошибками @