In program development, we encounter a lot of judgments. Sometimes when we need to judge whether a variable is empty, isset(), empty(), and is_null() are always Confused, let’s introduce their differences below
1. isset, determines whether the variable has been initialized
isset(), determines whether the variable has been set, it will not determine whether the variable is empty. And can be used to determine whether the elements in the array have been defined
Code description:
<?php $a = ''; $a['c'] = ''; if (!isset($a)) echo '$a 未被初始化' . ""; if (!isset($b)) echo '$b 未被初始化' . ""; if (isset($a['c'])) echo '$a 已经被初始化' . ""; // 显示结果为 // $b 未被初始化 // $a 已经被初始化 ?>
2. empty, detect whether the variable is "empty"
empty(), any An 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
Code description:
<?php $a = 0; $b = ''; $c = array(); if (empty($a)) echo '$a 为空' . ""; if (empty($b)) echo '$b 为空' . ""; if (empty($c)) echo '$c 为空' . ""; if (empty($d)) echo '$d 为空' . ""; ?>
3. $a == null, determine whether the variable is "empty"
Note: Variables and empty arrays with a value of 0 or false or an empty string "" or null will be judged as null
Note: The obvious difference from empty is that if the variable $a is not initialized, $a == null will report an error.
Code description:
<?php $a = 0; $b = array(); if ($a == null) echo '$a 为空' . ""; if ($b == null) echo '$b 为空' . ""; if ($c == null) echo '$b 为空' . ""; // 显示结果为 // $a 为空 // $b 为空 // Undefined variable: c ?>
4. is_null, detects whether the variable is "null"
is_null(), 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 only when the value of the variable is "null" is true, 0, empty string, false, and empty array are all detected as false
Note 3: When the variable is not initialized, an error will also be reported
Code description:
<?php $a = null; $b = false; if (is_null($a)) echo '$a 为NULL' . ""; if (is_null($b)) echo '$b 为NULL' . ""; if (is_null($c)) echo '$c 为NULL' . ""; // 显示结果为 // $a 为NULL // Undefined variable: c ?>
5. $a === null, detect whether the variable is "null", and the type of the variable must also be "null"
Description: When a variable is assigned a value of "null", the type of the variable must also be "null" When it is also "null", the detection result is true
Note 1: When it is judged to be "null", it has the same effect as is_null
Note 2: When the variable is not initialized, the program also An error will be reported
Summary:
In PHP, "NULL" and "empty" are two concepts.
isset is mainly used to determine whether a variable has been initialized.
empty can set variables with values of "false", "empty", "0", "NULL", and "uninitialized" Judge as TRUE
is_null Only judge the variable whose value is "NULL" as TRUE
$a == null Judge as "false", "empty", "0", "NULL" " variables are all judged to be TRUE
$a === null Only variables with a value of "NULL" are judged to be TRUE
, so when we judge whether a variable is really "NULL" , mostly use is_null to avoid interference from values such as "false" and "0".
The above is the detailed content of How to detect if a variable is empty in php. For more information, please follow other related articles on the PHP Chinese website!