There has been a lot of discussion about the usage of PHP's empty(), isset() and is_null() functions, and a lot of information may not be very clear. I repeat it here again, but instead of speaking from concepts, it should be more profound to memorize it by directly using program examples.
The types of tests are as follows:
<?php $a; $b = false; $c = ''; $d = 0; $e = null; $f = array(); ?>
empty()
First is the var_dump output of empty:
<?php var_dump(empty($a)); var_dump(empty($b)); var_dump(empty($c)); var_dump(empty($d)); var_dump(empty($e)); var_dump(empty($f)); ?>
The program output is:
bool(true) bool(true) bool(true) bool(true) bool(true) bool(true)
As can be seen from the code, as long as the data type is empty or false , empty() will output true.
isset()
Look at the output of isset again:
var_dump(isset($a)); var_dump(isset($b)); var_dump(isset($c)); var_dump(isset($d)); var_dump(isset($e)); var_dump(isset($f)); // 输出 bool(false) bool(true) bool(true) bool(true) bool(false) bool(true)
It can be seen that isset() can only be used to determine whether it is NULL and undefined.
is_null()
Finally is the output of is_null:
var_dump(is_null($a)); var_dump(is_null($b)); var_dump(is_null($c)); var_dump(is_null($d)); var_dump(is_null($e)); var_dump(is_null($f)); // 输出 bool(true) bool(false) bool(false) bool(false) bool(true) bool(false)
is_null literally means it.
It can be seen that empty() can be used to determine whether all data types are empty or false, while is_null is basically the same as isset and can only be used to determine whether it is NULL and undefined