There are the following five methods in php to detect whether a variable is empty. So what are the differences between these five methods? Let’s take a look together below.
1. isset function: determine whether the variable has been initialized
Note: It does not determine whether the variable is empty, but 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.
<?php //$a = ''; //$a = false; $a['c'] = ''; if (!isset($a)) echo '$a 未被初始化' . "<br/>"; if (!isset($b)) echo '$b 未被初始化' . "<br/>"; if (isset($a['c'])) echo '$a 已经被初始化' . "<br/>"; //结果 // $b 未被初始化 // $a 已经被初始化
2. empty() function: detect whether the variable is "empty"
Description: Any uninitialized variable, the value is 0 or false or the empty string "" or null Variables, empty arrays, objects without any properties, empty(variable) == true.
Note 1: Uninitialized variables can also be detected as "empty" by empty.
Note 2: empty can only detect variables, not statements.
<?php $a = 0; $b = ''; $c = array(); if (empty($a)) echo '$a 为空' . "<br/>"; if (empty($b)) echo '$b 为空' . "<br/>"; if (empty($c)) echo '$c 为空' . "<br/>"; if (empty($d)) echo '$d 为空' . "<br/>"; //结果 // $a 为空 // $b 为空 // $c 为空 // $d 为空 var_dump(empty(null)); var_dump(empty(0)); var_dump(empty('')); var_dump(empty([])); //结果 // bool(true) // bool(true) // bool(true) // bool(true)
3. var == null Function: Determine whether the variable is "empty"
Description: The value is 0 or false or an empty string "" or null variable, empty Arrays and arrays will all be judged as null.
(Learning video sharing: php video tutorial)
Note: The significant difference from empty is: when the variable is not initialized, var == null will report an error.
<?php $a = 0; $b = array(); if ($a == null) echo '$a 为空' . ""; if ($b == null) echo '$b 为空' . ""; if ($c == null) echo '$c 为空' . ""; // 显示结果为 // $a 为空 // $b 为空 // Undefined variable: c
4. is_null function: detect whether the variable is "null"
Description: 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;a = NULL makes no difference.
Note 2: Only when the value of the variable is "null", the detection result is true. 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.
<?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. var === null function: detect whether the variable is "null", and the type of the variable must also be "null"
Description: When the variable is assigned a value of "null" When, 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 the 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.
Related recommendations: php tutorial
The above is the detailed content of What are the methods in php to detect whether a variable is empty?. For more information, please follow other related articles on the PHP Chinese website!