PHP: isset()
, unset()
and empty()
PHP has three language constructs to manage variables: isset()
, unset()
and empty()
. We take a look at each of them separately in the below sections.
PHP isset()
The isset()
language construct checks whether a certain variable has been previously set or not and returns a boolean value: true
if set, false
if not or set to null
.
In the following script, we assign the variable $hello
to the string 'HELLO'
. Inside the if
statement, isset()
is applied on $hello
to check whether it is set or not
<?php
$hello = 'HELLO';
if(isset($hello)) {
echo $hello. ' is set.'; // HELLO is set.
}
?>
A variable set to an empty string is also set, and hence, isset()
returns true
$empty = '';
if(isset($empty)) {
echo $empty. ' is also set.'; // is also set.
}
A variable set to a false
value is also set, and hence, in this case too isset()
returns true
$untrue = false;
if(isset($untrue)) {
echo $untrue. ' is also set.'; // is also set.
}
Multiple variables can also be passed as arguments to isset()
, but it will return true
only if all the supplied arguments are set
$hello = 'HELLO';;
$empty = '';
$untrue = false;
if(isset($hello, $empty, $untrue)) {
echo $hello, $empty, $untrue, ' are all set.';
}
PHP unset()
The unset()
construct destroys a given variable/set of variables. Let us take the very first example used in the above section and apply unset()
on the variable $hello
just after it is assigned to 'HELLO'
. As we call isset()
on the variable $hello
, which was just unset()
, it returns false
<?php
$hello = 'HELLO';
unset($hello);
if(isset($hello)) { // the condition fails; echo is not executed
echo $hello. ' is set.';
}
?>
Several variables can be destroyed/unset at a time
<?php
$hello = 'HELLO';
$n = 1;
$bool = false;
unset($hello, $n, $bool);
?>
PHP empty()
The empty()
construct returns true
if a variable is set to an empty string, to 0 (either as a number or a string), to false
, or to null
<?php
$hello = '';
$zero = 0;
$raining = false;
$nihil = null;
if(empty($hello)) { // true
echo 'true';
}
if(empty($zero)) { // true
echo 'true';
}
if(empty($raining)) { // true
echo 'true';
}
if(empty($nihil)) { // true
echo 'true';
}
?>
However, a space character is not considered empty. In the following code, we set the variable $space
to a single space character. Applying empty()
on it, the if
condition fails
<?php
$space = ' '; // single space
if(empty($space)) { // the condition fails; echo is not executed
echo $space. ' is empty.';
}
?>