isset
Determine if a variable is set and is not NULL
Description
bool isset
( mixed $var
[, mixed $...
] )
If a variable has been unset with unset, it will no
longer be set. isset will return FALSE
if testing a
variable that has been set to NULL
. Also note that a NULL
byte
("\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 set. Evaluation goes from
left to right and stops as soon as an unset variable is encountered.
Parameters
-
var
-
The variable to be checked.
-
...
-
Another variable ...
Return Values
Returns TRUE
if var
exists and has 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:
Example #2 isset on String Offsets
PHP 5.4 changes how isset behaves
when passed 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']));
?>
Output of the above example in PHP 5.3:
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
Output of the above example in PHP 5.4:
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.
Note:
When using isset on inaccessible object properties,
the __isset()
overloading method will be called, if declared.