difference between empty and isset in php code example
Example: php isset vs empty
/* isset() should be used to determine if a variable or element of an array
is considered set (i.e. if a variable or element of an array is declared
and is different than null). Returns true if a variable or element of
an array exists and has any value other than null, false otherwise.
empty() should be used to determine whether a variable or an array
is considered to be empty. Returns true for a falsey (falsy)[*] (i.e. if
a variable is zero-length string '' or boolean false or numeric 0 or null
and if an array has no elements), false otherwise.
NB! empty() also returns true for non-existing variable since
such variable is considered falsey (falsy) */
var_dump(empty($nonExistingVariable)); /* true */
var_dump(isset($nonExistingVariable)); /* false */
$nullVariable = null;
var_dump(empty($nullVariable)); /* true */
var_dump(isset($nullVariable)); /* false */
$zeroVariable = 0;
var_dump(empty($zeroVariable)); /* true */
var_dump(isset($zeroVariable)); /* true */
$emptyArray = [];
var_dump(empty($emptyArray)); /* true */
var_dump(isset($emptyArray)); /* true */
$nonEmptyString = 'Non-empty string';
var_dump(empty($nonEmptyString)); /* false */
var_dump(isset($nonEmptyString)); /* true */
/* [*]Falsey (falsy) is anything equivalent to false. I.e., variable or
array is falsey (falsy) if it casts to boolean as false.
(bool) $someVariable === false
(bool) $someArray === false */