empty() is used to check whether a variable is empty. empty() returns FALSE if the variable is a non-empty or non-zero value. In other words, "", 0, "0", NULL, FALSE, array(), var $var; and objects without any properties will be considered empty, and TRUE is returned if var is empty.
A simple comparison of empty() and isset().
<?php $var = 0; // 结果为 true,因为 $var 为空 // 结果为 true,因为 $var =0 if (empty($var)) { echo '$var is either 0 or not set at all'; } //结果为false, 因为$var已经设置了 if (!isset($var)) { echo '$var is not set at all'; } ?>
Since this is a language construct rather than a function, it cannot be called by variable functions.
empty() only checks for variables, checking anything that is not a variable will result in a parsing error. In other words, the following statement will not work: empty(addslashes($name)).
empty determines whether a variable is "empty", and isset determines whether a variable has been set. It is this so-called "as the name implies" that made me take some detours at the beginning: when a variable value is equal to 0, empty() will also be true (True), so some accidents will occur. It turns out that although empty and isset are both variable processing functions, they are both used to determine whether the variable has been configured, but they have certain differences: empty will also detect whether the variable is empty or zero. When a variable value is 0, empty considers the variable to be equal to empty, which is equivalent to not being set.
For example, to detect the $id variable, when $id=0, use empty and isset to check whether the variable $id has been configured. Both will return different values - empty means that it is not configured, and isset can get the value of $id. :
<?php $id = 0; empty($id) ? print '变量 $id 为空.' : print '$id'.'的值为 '."$id"; print "<br>"; !isset($id) ? print "It's empty .":print '$id'." 的值为 $id ."; ?>
Program execution result:
The variable $id is empty.
The value of $id is 0.
This means that when we use variable processing functions, when the variable may have a value of 0, be careful when using empty. At this time, it is more sensible to replace it with isset.
When the URL tail parameter of a php page appears id=0 (for example: test.php?id=0), try to compare:
if(empty($id)) $id=1; // 若 id=0 ,id 也会为1 if(!isset($id)) $id=1; // 若 id=0 ,id 不会为1
The following code can be run separately to detect the above inference:
if(empty($id)) $id=1; print $id; // 得到 1
if(!isset($id)) $id=1; print $id; //得到 0