Isset and empty differences in PHP
http://seawomen.iteye.com/blog/629786
?
The difference between PHP language isset and empty
Empty to determine whether a variable is "empty", isset to determine whether a variable has been set. It is this so-called "as the name implies", so I began to take some detours:??? 1. When a variable value equals 0 o'clock, empty () also holds (True), resulting in some unexpected occurrences. Originally, empty and isset are variable processing functions, they are used to determine whether the variables have been configured, they are a certain difference:
??? The 2.empty also detects if the variable is empty and zero. When the value of a variable is 0,empty that the variable equals null, it is equivalent to no setting.
?
??? For example, the detection of $id variables, when $id=0, with empty and isset to detect whether the variable $id has been configured, both will return different values ――empty think that there is no configuration, isset can obtain the value of $id:
PHP code
- $id=0;??
- empty empty ($id)? print? "It ' S?empty?" :p rint? "It ' S?$id?" ;???
- //result: It ' S?empty? ??
- print? " ;?
- !isset ($id)? print? "It ' S?empty?" :p rint? "It ' S?$id?" ;??
- //result: It ' s?0? ??
$id=0;empty ($id)? print "It's empty.":p rint "it ' s $id."; Result: It ' s empty. Print "
";! Isset ($id)? print "It's empty.":p rint "it ' s $id."; /Result: It ' s 0.
?
??? This means that when we use the variable handler function, when the variable may appear with a value of 0, use empty to be careful, it is wiser to replace it with Isset.
?
When the URL trailing parameter of a PHP page appears id=0 (for example: test.php?id=0), try comparing:
PHP code
- if (emptyempty($id))? $id=1;? //What if the Id=0?,id? will also be 1 . ??
- if (!isset ($id))? $id=1;?? //Id=0?,id? Not for 1 . ??
if (empty ($id)) $id=1; If id=0, the ID will also be 1if (!isset ($id)) $id=1; If id=0, the ID will not be 1
?
The following code can be run separately to detect the above inference:
PHP code
- if (emptyempty($id))? $id=1;??
- print?$id;? //? 1 ??
- if (!isset ($id))? $id=1;??
- print?$id;? //Get? 0 ??