What's the difference between 'isset()' and '!empty()' in PHP?

狂风中的少年 提交于 2019-11-26 04:26:10

问题


I don\'t understand the difference between isset() and !empty().

Because if a variable has been set, isn\'t it the same as not being empty?


回答1:


ISSET checks the variable to see if it has been set. In other words, it checks to see if the variable is any value except NULL or not assigned a value. ISSET returns TRUE if the variable exists and has a value other than NULL. That means variables assigned a "", 0, "0", or FALSE are set, and therefore are TRUE for ISSET.

EMPTY checks to see if a variable is empty. Empty is interpreted as: "" (an empty string), 0 (integer), 0.0 (float)`, "0" (string), NULL, FALSE, array() (an empty array), and "$var;" (a variable declared, but without a value in a class.

For more information, see this article




回答2:


Source :http://php.net/manual/en/types.comparisons.phpThis page shows the comparison of the empty(),is_null(),isset().




回答3:


The type comparison tables gives answer of all question about these operators

http://php.net/manual/en/types.comparisons.php




回答4:


isset — Determine if a variable is set and is not NULL.

!empty — Determine whether a variable is NOT empty.




回答5:


Isset return false if variable has not been set or it is null and return true if variable has been set and not null.

!empty return true if variable has been set and not empty. Empty string, empty array, "0",0 and false are defined as empty.




回答6:


And one more remark. empty() checks if the variable exists as well. I.e. if we perform empty() to the variable that wasn't declared, we don't receive an error, empty() returns 'true'. Therefore we may avoid isset() if next we need to check if the variable empty.

So

isset($var) && !empty($var)

will be equals to

!empty($var)


来源:https://stackoverflow.com/questions/20582962/whats-the-difference-between-isset-and-empty-in-php

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!