In php, empty (), isset (), and is_null () functions are similar to each other in many of our friends, but it seems that they are different. A null value, whether a variable is null or not. The following is an example.
Many people have vague usage of PHP empty (), isset (), and is_null () functions. There are also a lot of information on the Internet, but it may not be clear, the following is a test example, which will be of great benefit to understanding the differences between the three functions.
The test type is as follows:
$;
$ B = false;
$ C = '';
$ D = 0;
$ E = null;
$ F = array ();
?>
Empty ()
The Code is as follows: |
Copy code |
Var_dump (empty ($ )); Var_dump (empty ($ B )); Var_dump (empty ($ c )); Var_dump (empty ($ d )); Var_dump (empty ($ e )); Var_dump (empty ($ f )); ?> // Output Bool (true) Bool (true) Bool (true) Bool (true) Bool (true) Bool (true) |
The Code shows that empty () Outputs true if the data type is null or false.
Isset ()
The Code is as follows: |
Copy code |
Var_dump (isset ($ )); Var_dump (isset ($ B )); Var_dump (isset ($ c )); Var_dump (isset ($ d )); Var_dump (isset ($ e )); Var_dump (isset ($ f )); ?> // Output Bool (false) Bool (true) Bool (true) Bool (true) Bool (false) Bool (true) |
We can see that isset () can only be used to determine whether it is NULL or not.
Warning: isset () can only be used for variables, because passing any other parameter will cause a parsing error. To check whether a constant has been set, use the defined () function.
You can use the isset function to determine whether a variable has been declared.
You can use the empty function to determine whether a variable has been assigned data and is not empty.
To determine whether a variable exists and is not empty, use the isset function and the empty function.
For example, if the $ id variable is detected and $ id = 0, empty () and isset () are used to check whether the variable $ id has been configured, the two will return different values -- empty () think that there is no configuration, isset () can get the value of $ id:
The Code is as follows: |
Copy code |
$ Id = 0; Empty ($ id )? Print "It's empty.": print "It's $ id ."; // Result: It's empty. Print" "; ! Isset ($ id )? Print "It's empty.": print "It's $ id ."; // Result: It's 0. |
This means that when we use a variable to process a function, when the variable may have a value of 0, we should be careful when using empty (). In this case, it is more wise to replace it with isset.
When the URL tail parameter of a php page shows id = 0 (for example, test. php? Id = 0), try to compare:
The Code is as follows: |
Copy code |
If (empty ($ id) $ id = 1;-if id = 0, the id is also 1 If (! Isset ($ id) $ id = 1;-if id = 0, id is not 1
|
Run the following code separately to detect the above inference:
The Code is as follows: |
Copy code |
If (empty ($ id) $ id = 1; Print $ id; // get 1
If (! Isset ($ id) $ id = 1; Print $ id; // get 0 |
Is_null ()
The Code is as follows: |
Copy code |
Var_dump (is_null ($ )); Var_dump (is_null ($ B )); Var_dump (is_null ($ c )); Var_dump (is_null ($ d )); Var_dump (is_null ($ e )); Var_dump (is_null ($ f )); ?> // Output Bool (true) Bool (false) Bool (false) Bool (false) Bool (true) Bool (false) |
Is_null.
It can be seen that empty () can be used to determine whether all data types are NULL or false, while is_null is basically the same as isset and can only be used to determine whether it is NULL or undefined.
A table will be attached to you later.
The following table clearly describes the relationship between them:
Empty is_null isset
$ A = "true false true
$ A = null true false
Var $ a true false
$ A = array () true false true
$ A = false true
$ A = 15 false true
$ A = 1 false true
$ A = 0 true false true
$ A = "0" true false true
$ A = "true" false true
$ A = "false true