设为首页收藏本站

安徽论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8339|回复: 0

PHP中 empty() 和 isset() 的区别介绍

[复制链接]

63

主题

503

回帖

953

积分

高级会员

Rank: 4

积分
953
发表于 2022-3-26 10:58:29 | 显示全部楼层 |阅读模式
网站内容均来自网络,本站只提供信息平台,如有侵权请联系删除,谢谢!
目录


二者共同点

都可以判定一个变量是否为空;
都返回boolean类型,即true或false。

二者区别

empty() 函数用于检查一个变量是否为空。当一个变量并不存在,或者它的值等同于 FALSE,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。
isset() 函数用于检测变量是否已设置并且非 NULL。如果已经使用 unset() 释放了一个变量之后,再通过 isset() 判断将返回 FALSE。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是 null 字符("\0")并不等同于 PHP 的 NULL 常量。
对于 0、false、空字符串、空数组的判断上,empty() 可以识别为空,isset() 则不能识别。

1、对于未设置的变量的判断
  1. // 对于未设置的变量的判断
  2. if (empty($a)) {
  3.     echo "empty:变量为空" . "<br>";
  4. } else {
  5.     echo "empty:变量不为空" . "<br>";
  6. }
  7. if (isset($a)) {
  8.      echo "isset:变量已设置且不为空" . "<br>";
  9. } else {
  10.     echo "isset:变量未设置或变量为空" . "<br>";
  11. }
  12. ##结果
  13. empty:变量为空
  14. isset:变量未设置或变量为空
复制代码
2、对于 "" (空字符串) 的判断
  1. // 对于 "" (空字符串) 的判断
  2. $a = "";
  3. if (empty($a)) {
  4.     echo "empty:变量为空" . "<br>";
  5. } else {
  6.     echo "empty:变量不为空" . "<br>";
  7. }
  8. if (isset($a)) {
  9.     echo "isset:变量已设置且不为空" . "<br>";
  10. } else {
  11.     echo "isset:变量未设置或变量为空" . "<br>";
  12. }
  13. ##结果
  14. empty:变量为空
  15. isset:变量已设置且不为空
复制代码
3、对于 0 (作为整数的0) 的判断
  1. // 对于 0 (作为整数的0) 的判断
  2. $a = 0;
  3. if (empty($a)) {
  4.     echo "empty:变量为空" . "<br>";
  5. } else {
  6.     echo "empty:变量不为空" . "<br>";
  7. }
  8. if (isset($a)) {
  9.     echo "isset:变量已设置且不为空" . "<br>";
  10. } else {
  11.     echo "isset:变量未设置或变量为空" . "<br>";
  12. }
  13. ##结果
  14. empty:变量为空
  15. isset:变量已设置且不为空
复制代码
4、对于 0.0 (作为浮点数的0) 的判断
  1. // 对于 0.0 (作为浮点数的0) 的判断
  2. $a = 0.0;
  3. if (empty($a)) {
  4.     echo "empty:变量为空" . "<br>";
  5. } else {
  6.     echo "empty:变量不为空" . "<br>";
  7. }
  8. if (isset($a)) {
  9.     echo "isset:变量已设置且不为空" . "<br>";
  10. } else {
  11.     echo "isset:变量未设置或变量为空" . "<br>";
  12. }
  13. ##结果
  14. empty:变量为空
  15. isset:变量已设置且不为空
复制代码
5、对于 "0" (作为字符串的0) 的判断
  1. // 对于 "0" (作为字符串的0) 的判断
  2. $a = "0";
  3. if (empty($a)) {
  4.     echo "empty:变量为空" . "<br>";
  5. } else {
  6.     echo "empty:变量不为空" . "<br>";
  7. }
  8. if (isset($a)) {
  9.     echo "isset:变量已设置且不为空" . "<br>";
  10. } else {
  11.     echo "isset:变量未设置或变量为空" . "<br>";
  12. }
  13. ##结果
  14. empty:变量为空
  15. isset:变量已设置且不为空
复制代码
6、对于 NULL 的判断
  1. // 对于 NULL 的判断
  2. $a = null;
  3. if (empty($a)) {
  4.     echo "empty:变量为空" . "<br>";
  5. } else {
  6.     echo "empty:变量不为空" . "<br>";
  7. }
  8. if (isset($a)) {
  9.     echo "isset:变量已设置且不为空" . "<br>";
  10. } else {
  11.     echo "isset:变量未设置或变量为空" . "<br>";
  12. }
  13. ##结果
  14. empty:变量为空
  15. isset:变量未设置或变量为空
复制代码
7、对于 FALSE 的判断
  1. // 对于 FALSE 的判断
  2. $a = false;
  3. if (empty($a)) {
  4.     echo "empty:变量为空" . "<br>";
  5. } else {
  6.     echo "empty:变量不为空" . "<br>";
  7. }
  8. if (isset($a)) {
  9.     echo "isset:变量已设置且不为空" . "<br>";
  10. } else {
  11.     echo "isset:变量未设置或变量为空" . "<br>";
  12. }
  13. ##结果
  14. empty:变量为空
  15. isset:变量已设置且不为空
复制代码
8、对于 array() (一个空数组) 的判断 
  1. // 对于 array() (一个空数组) 的判断
  2. $a = array();
  3. if (empty($a)) {
  4.     echo "empty:变量为空" . "<br>";
  5. } else {
  6.     echo "empty:变量不为空" . "<br>";
  7. }
  8. if (isset($a)) {
  9.     echo "isset:变量已设置且不为空" . "<br>";
  10. } else {
  11.     echo "isset:变量未设置或变量为空" . "<br>";
  12. }
  13. ##结果
  14. empty:变量为空
  15. isset:变量已设置且不为空
复制代码
                                                        
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
免责声明
1. 本论坛所提供的信息均来自网络,本网站只提供平台服务,所有账号发表的言论与本网站无关。
2. 其他单位或个人在使用、转载或引用本文时,必须事先获得该帖子作者和本人的同意。
3. 本帖部分内容转载自其他媒体,但并不代表本人赞同其观点和对其真实性负责。
4. 如有侵权,请立即联系,本网站将及时删除相关内容。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表