Determine if a variable is declared and is different than null

- « is_string

- print_r »

- PHP Manual
- Variable handling Functions
- Determine if a variable is declared and is different than null

# isset

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

isset — Determine if a variable is declared and is different than `null`

### Description

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

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

`var`

  The variable to be checked.

`vars`

  Further variables.

### Return Values

Returns `true` if `var` exists and has any value other than `null`. `false` otherwise.

### Examples

Example #1 isset() Examples

    <?php

    $var = '';

    // 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().

    $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

    ?>

This also work for elements in arrays:

    <?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

    // 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

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

The above example will output:

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

### Notes

Warning

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 constant with the given name 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