In PHP we have three different functions which can be used to test the value of a variable. They are isset(), empty() and is_null(). All these functions return a boolean value. But in case if these functions are not used in correct way they can cause unexpected results.
Isset() - this function is used to check whether a variable is set or not and that is not null, i.e., this function will return boolean true only in a case where variable is not null.
Empty() - this function, as the name suggests, will return boolean true if the variable is an empty string, false, array(), NULL and an unset variable.
is_null() - this function is opposite to the isset() function. This function is used to find whether a variable is NULL. One difference between the isset() and is_null() function is that former can be applied to unknown variables, but is_null() only to declared variables.
Table for reference what these functions will return for different values.
Value of variable($var)
|
isset($var)
|
empty($var)
|
is_null($var)
|
FALSE
|
bool(true)
|
bool(true)
|
|
TRUE |
bool(true)
|
|
|
array() (an empty array) |
bool(true)
|
bool(true)
|
|
"" (an empty string) |
bool(true)
|
bool(true)
|
|
" " (space) |
bool(true)
|
|
|
NULL |
|
bool(true)
|
bool(true)
|
"0" (0 as a string) |
bool(true)
|
bool(true)
|
|
0 (0 as an integer) |
bool(true)
|
bool(true)
|
|
0.0 (0 as a float) |
bool(true)
|
bool(true)
|
|
var $x (declared variable but without a value) |
|
bool(true)
|
bool(true)
|
NULL byte ("\0") |
bool(true)
|
|
|
/* Program to show the functionality of isset() */
<?php
$var= ' ';
if(isset($var)) // It will evalute to true so the text will be printed.
{
echo This variable is set to true.;
}
$x = sample_data;
$y = another sample_data;
var_dump(isset($x)); //TRUE
var_dump(isset($x, $y)); //TRUE
unset($x);
var_dump(isset($x)); //FALSE
var_dump(isset($x, $y)); //FALSE
$arr = array('array1' => 1, 'array2' => NULL, 'array3' =>array('sub_array' => 'Sarray'));
var_dump(isset($arr['array1'])); //TRUE
var_dump(isset($arr['array2'])); //FALSE ; as the key array2 equals NULL so it is considered unset.
var_dump(isset($arr['array3']['sub_array])); //TRUE
?>
/* Program to demonstrate the comparison between isset() and empty() function */
<?php
$v = 0;
if(empty($v)) // Evaluates to true as $v is empty
{
echo $v is either 0, empty, or is not set;
}
if(isset($v)) // Evaluates to true as $v is set
{
echo $v is set and empty ;
}
?>
0 Comment(s)