Differences between isset () and empty () in php

Source: Internet
Author: User
Through learning the PHP language, you should know that it is a function-based HTML scripting language. The huge function library supports the implementation of PHP functions. Next we will introduce the usage of PHP functions isset () and empty. Through learning the PHP language, you should know that it is a function-based HTML scripting language. The huge function library supports the implementation of PHP functions. Next we will introduce the usage of PHP functions isset () and empty.

The isset () function of PHP is generally used to check whether the variable is set.

Format: bool isset (mixed var [, mixed var [,...])

Function: checks whether variables are set.

Return value:

If the variable does not exist, FALSE is returned.
If the variable exists and its value is NULL, FALSE is returned.
If the variable exists and the value is not NULL, true is returned.
When multiple variables are checked at the same time, TRUE is returned only when each individual item meets the previous requirement; otherwise, the result is FALSE.
Version: PHP 3, PHP 4, PHP 5

More instructions:

When unset () is used to release a variable, it is no longer an isset ().
The PHP function isset () can only be used for variables. passing any other parameter will cause a parsing error.
Checks whether the defined () function has been set for constants.

PHP's empty () function determines whether the value is null.

Format: bool empty (mixed var)

Function: checks whether a variable is empty.

Return value:

Returns TRUE if the variable does not exist.
If a variable exists and its values are "", 0, "0", NULL, FALSE, array (), var $ var, and objects without any attribute, true is returned.
If a variable exists and its values are not "", 0, "0", NULL, FALSE, array (), var $ var, or an object without any attribute, FALSE is returned.
Version: PHP 3, PHP 4, PHP 5

More instructions:

Empty () return value =! (Boolean) var, but no warning is generated because the variable is not defined. For more information, see convert to a Boolean value.
Empty () can only be used for variables. passing any other parameter will cause Paser error and terminate the operation.
Checks whether the defined () function has been set for constants.

Example: a simple comparison between empty () and isset ()

 

Note: Because this is a language structure rather than a function, it cannot be called by variable functions.

Note: empty () only detects variables, and any non-variables can cause parsing errors. In other words, the following statement does not work: empty (addslashes ($ name )).
The following is the code of a detailed example of isset and empty functions we have tested. after reading the code, it is basically the same:

 Undefined $ var
'; Echo "isset test:
"; If (isset ($ var) {echo 'variable $ var exists!
';} Echo "empty test:
"; If (empty ($ var) {echo 'variable $ var value is empty
';} Else {echo' variable $ var value is not empty
';} Echo "variable direct test:
"; If ($ var) {echo 'variable $ var exists!
';} Else {echo' variable $ var does not exist!
';} Echo '----------------------------------
'; Echo'$ Var = \'\'
'; Echo "isset test:
"; $ Var =''; if (isset ($ var) {echo 'variable $ var exists!
';} Echo "empty test:
"; If (empty ($ var) {echo 'variable $ var value is empty
';} Else {echo' variable $ var value is not empty
';} Echo "variable direct test:
"; If ($ var) {echo 'variable $ var exists!
';} Else {echo' variable $ var does not exist!
';} Echo '----------------------------------
'; Echo'$ Var = 0
'; Echo' isset test:
'; $ Var = 0; if (isset ($ var) {echo' variable $ var exists!
';} Echo "empty test:
"; If (empty ($ var) {echo 'variable $ var value is empty
';} Else {echo' variable $ var value is not empty
';} Echo "variable direct test:
"; If ($ var) {echo 'variable $ var exists!
';} Else {echo' variable $ var does not exist!
';} Echo '----------------------------------
'; Echo'$ Var = null
'; Echo' isset test:
'; $ Var = null; if (isset ($ var) {echo' variable $ var exists!
';} Echo "empty test:
"; If (empty ($ var) {echo 'variable $ var value is empty
';} Else {echo' variable $ var value is not empty
';} Echo "variable direct test:
"; If ($ var) {echo 'variable $ var exists!
';} Else {echo' variable $ var does not exist!
';} Echo '----------------------------------
'; Echo'$ Var = "php"
'; Echo' isset test:
'; $ Var = "php"; if (isset ($ var) {echo' variable $ var exists!
';} Echo "empty test:
"; If (empty ($ var) {echo 'variable $ var value is empty
';} Else {echo' variable $ var value is not empty
';} Echo "variable direct test:
"; If ($ var) {echo 'variable $ var exists!
';} Else {echo' variable $ var does not exist!
';}?>

When using php to write page programs, I often use the variable processing function to determine whether the variable value of a parameter at the end of the php page is null. at the beginning, I used to use the empty () function, but some problems are found. Therefore, the isset () function is used instead.

As the name suggests, empty () determines whether a variable is "null", and isset () determines whether a variable has been set. This so-called "name implies" makes me take some detours at the beginning: When a variable value is equal to 0, empty () will also be True ), as a result, some accidents may occur. Originally, although empty () and isset () are both variable processing functions, they are used to determine whether the variables have been configured, but they are different: empty also checks whether the variable is null and zero. When the value of a variable is 0, empty () considers this variable to be null, that is, it is equivalent to not being set.

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:

$ 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:

If (empty ($ id) $ id = 1;-if id = 0, the id is also 1if (! Isset ($ id) $ id = 1;-if id = 0, id is not 1

Run the following code separately to detect the above inference:

If (empty ($ id) $ id = 1; print $ id; // get 1if (! Isset ($ id) $ id = 1; print $ id; // get 0

To talk about their connection, empty () and isset () are both variable processing functions. they are used to determine whether the variables have been configured, it is because of their great similarity in the process of processing variables that they lack understanding of their relationships. Considering the functions empty () and isset (), we will confuse people and give them a different angle. The processing objects of empty () and isset () are almost undefined variables, 0, empty strings.

If the variable is 0, empty () returns TRUE, and isset () returns TRUE;

If the variable is a null string, empty () returns TRUE, and isset () returns TRUE;
If the variable is not defined, empty () returns TRUE, and isset () returns FLASE;

Empty () is described as follows:

Description: bool empty (mixed var)
If var is a non-null or non-zero value, empty () returns FALSE. In other words, "", 0, "0", NULL, FALSE, array (), var $ var; and objects without any attributes will be considered empty, if var is null, TRUE is returned.

Isset () is described as follows:

Isset () check whether the variable is set

Description: bool isset (mixed var [, mixed var [,...])

If var exists, TRUE is returned; otherwise, FALSE is returned.

If unset () is used to release a variable, it will no longer be isset (). If you use isset () to test a variable that is set to NULL, FALSE is returned. Note that a NULL byte ("?") It is not equivalent to the NULL constant of PHP.
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.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.