1. isset function: determine whether the variable has been initialized
Note: It does not determine whether the variable is empty, and can be used to determine whether the elements in the array have been defined
Note: When using isset to determine whether an array element has been initialized, its efficiency is about 4 times higher than array_key_exists
<ol class="dp-c"><li class="alt"><span><span><?php </span></span></li><li><span><span class="vars">$a</span><span> = </span><span class="string">''</span><span>; </span></span></li><li class="alt"><span><span class="vars">$a</span><span>[</span><span class="string">'c'</span><span>] = </span><span class="string">''</span><span>; </span></span></li><li><span><span class="keyword">if</span><span> (!isset(</span><span class="vars">$a</span><span>)) </span><span class="func">echo</span><span> </span><span class="string">'$a 未被初始化'</span><span> . </span><span class="string">""</span><span>; </span></span></li><li class="alt"><span><span class="keyword">if</span><span> (!isset(</span><span class="vars">$b</span><span>)) </span><span class="func">echo</span><span> </span><span class="string">'$b 未被初始化'</span><span> . </span><span class="string">""</span><span>; </span></span></li><li><span><span class="keyword">if</span><span> (isset(</span><span class="vars">$a</span><span>[</span><span class="string">'c'</span><span>])) </span><span class="func">echo</span><span> </span><span class="string">'$a 已经被初始化'</span><span> . </span><span class="string">""</span><span>; </span></span></li><li class="alt"><span><span class="comment">// 显示结果为</span><span> </span></span></li><li><span><span class="comment">// $b 未被初始化</span><span> </span></span></li><li class="alt"><span><span class="comment">// $a 已经被初始化</span><span> </span></span></li></ol>
2. empty function: detect whether the variable is "empty"
Note: Any uninitialized variable, a variable with a value of 0 or false or an empty string "" or null, an empty array, or an object without any attributes will be judged as empty==true
Note 1: Uninitialized variables can also be detected as "empty" by empty
Note 2: empty can only detect variables, not statements
<ol class="dp-c"><li class="alt"><span><span><?php </span></span></li><li><span><span class="vars">$a</span><span> = 0; </span></span></li><li class="alt"><span><span class="vars">$b</span><span> = </span><span class="string">''</span><span>; </span></span></li><li><span><span class="vars">$c</span><span> = </span><span class="keyword">array</span><span>(); </span></span></li><li class="alt"><span><span class="keyword">if</span><span> (</span><span class="func">empty</span><span class="keyword">empty</span><span>(</span><span class="vars">$a</span><span>)) </span><span class="func">echo</span><span> </span><span class="string">'$a 为空'</span><span> . </span><span class="string">""</span><span>; </span></span></li><li><span><span class="keyword">if</span><span> (</span><span class="func">empty</span><span class="keyword">empty</span><span>(</span><span class="vars">$b</span><span>)) </span><span class="func">echo</span><span> </span><span class="string">'$b 为空'</span><span> . </span><span class="string">""</span><span>; </span></span></li><li class="alt"><span><span class="keyword">if</span><span> (</span><span class="func">empty</span><span class="keyword">empty</span><span>(</span><span class="vars">$c</span><span>)) </span><span class="func">echo</span><span> </span><span class="string">'$c 为空'</span><span> . </span><span class="string">""</span><span>; </span></span></li><li><span><span class="keyword">if</span><span> (</span><span class="func">empty</span><span class="keyword">empty</span><span>(</span><span class="vars">$d</span><span>)) </span><span class="func">echo</span><span> </span><span class="string">'$d 为空'</span><span> . </span><span class="string">""</span><span>; </span></span></li></ol>
3. var == null function: determine whether the variable is "empty"
Note: Variables and empty arrays whose value is 0 or false or empty string "" or null will be judged as null
Note: The significant difference from empty is that var == null will report an error when the variable is not initialized.
<ol class="dp-c"><li class="alt"><span><span><?php </span></span></li><li><span><span class="vars">$a</span><span> = 0; </span></span></li><li class="alt"><span><span class="vars">$b</span><span> = </span><span class="keyword">array</span><span>(); </span></span></li><li><span><span class="keyword">if</span><span> (</span><span class="vars">$a</span><span> == null) </span><span class="func">echo</span><span> </span><span class="string">'$a 为空'</span><span> . </span><span class="string">""</span><span>; </span></span></li><li class="alt"><span><span class="keyword">if</span><span> (</span><span class="vars">$b</span><span> == null) </span><span class="func">echo</span><span> </span><span class="string">'$b 为空'</span><span> . </span><span class="string">""</span><span>; </span></span></li><li><span><span class="keyword">if</span><span> (</span><span class="vars">$c</span><span> == null) </span><span class="func">echo</span><span> </span><span class="string">'$b 为空'</span><span> . </span><span class="string">""</span><span>; </span></span></li><li class="alt"><span><span class="comment">// 显示结果为</span><span> </span></span></li><li><span><span class="comment">// $a 为空</span><span> </span></span></li><li class="alt"><span><span class="comment">// $b 为空</span><span> </span></span></li><li><span><span class="comment">// Undefined variable: c</span><span> </span></span></li></ol>
4. is_null function: detect whether the variable is "null"
Note: When the variable is assigned a value of "null", the detection result is true
Note 1: null is not case sensitive: $a = null; $a = NULL makes no difference
Note 2: The detection result is true only when the value of the variable is "null". 0, empty string, false, and empty array are all detected as false
Note 3: When the variable is not initialized, the program will report an error
<ol class="dp-c"><li class="alt"><span><span><?php </span></span></li><li><span><span class="vars">$a</span><span> = null; </span></span></li><li class="alt"><span><span class="vars">$b</span><span> = false; </span></span></li><li><span><span class="keyword">if</span><span> (</span><span class="func">is_null</span><span>(</span><span class="vars">$a</span><span>)) </span><span class="func">echo</span><span> </span><span class="string">'$a 为NULL'</span><span> . </span><span class="string">""</span><span>; </span></span></li><li class="alt"><span><span class="keyword">if</span><span> (</span><span class="func">is_null</span><span>(</span><span class="vars">$b</span><span>)) </span><span class="func">echo</span><span> </span><span class="string">'$b 为NULL'</span><span> . </span><span class="string">""</span><span>; </span></span></li><li><span><span class="keyword">if</span><span> (</span><span class="func">is_null</span><span>(</span><span class="vars">$c</span><span>)) </span><span class="func">echo</span><span> </span><span class="string">'$c 为NULL'</span><span> . </span><span class="string">""</span><span>; </span></span></li><li class="alt"><span><span class="comment">// 显示结果为</span><span> </span></span></li><li><span><span class="comment">// $a 为NULL</span><span> </span></span></li><li class="alt"><span><span class="comment">// Undefined variable: c</span><span> </span></span></li></ol>
5. var === null function: detect whether the variable is "null", and the type of the variable must also be "null"
Note: When a variable is assigned a value of "null" and the type of the variable is also "null", the detection result is true
Note 1: When judging "null", equal to is_null has the same effect
Note 2: When the variable is not initialized, the program will report an error
Summary:
In PHP, "NULL" and "empty" are two concepts.
isset is mainly used to determine whether a variable has been initialized
empty can judge variables with values of "false", "empty", "0", "NULL", and "uninitialized" as TRUE
is_null only evaluates variables with a value of "NULL" as TRUE
var == null Judges variables with values of "false", "empty", "0", and "NULL" as TRUE
var === null Only variables with a value of "NULL" are judged as TRUE
Note: When judging whether a variable is really "NULL", is_null is mostly used to avoid interference from "false", "0" and other values.