位置: 编程技术 - 正文

PHP isset()与empty()的使用区别详解

编辑:rootadmin

推荐整理分享PHP isset()与empty()的使用区别详解,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

在使用 php 编写页面程序时,我经常使用变量处理函数判断 php 页面尾部参数的某个变量值是否为空,开始的时候我习惯了使用 empty() 函数,却发现了一些问题,因此改用 isset() 函数,问题不再。

顾名思义,empty() 判断一个变量是否为“空”,isset() 判断一个变量是否已经设置。正是这种所谓的“顾名思义”,令我开始时走了些弯路:当一个变量值等于0时,empty()也会成立(True),因而会发生 一些意外。原来,empty() 和 isset() 虽然都是变量处理函数,它们都用来判断变量是否已经配置,它们却是有一定的区别:empty还会检测变量是否为空、为零。当一个变量值为0,empty() 认为这个变量同等于空,即相当于没有设置。

比如检测 $id 变量,当 $id=0 时,用empty() 和 isset() 来检测变量 $id 是否已经配置,两都将返回不同的值—— empty() 认为没有配置,isset() 能够取得 $id 的值:

这意味着,我们在使用变量处理函数时,当该变量可能出现0的值,使用 empty() 要小心,这个时候用 isset 取代它更明智一些。

当一个php页面的 URL 尾部参数出现 id=0 时(比如:test.php&#;id=0),试比较:

可分开运行以下代码检测上述推断:

要说它们的联系,其共同点就是empty()和 isset()都是变量处理函数,作用是判断变量是否已经配置,正是由于它们在处理变量过程中有很大的相似性,才导致对它们的关系认识不足。单从 empty()和isset()这两个函数本身来考虑的话会把人弄得更糊涂,换一个角度来它。empty()和isset()的处理对象无外乎未定义变量,0,空字符串。

如果变量为0,则empty()会返回TRUE,isset()会返回TRUE;

如果变量为空字符串,则empty()会返回TRUE,isset()会返回TRUE;

PHP isset()与empty()的使用区别详解

如果变量未定义,则empty()会返回TRUE,isset()会返回FLASE;

手册中对empty()的解释如下:

描述bool empty( mixed var )

如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。

手册中对isset()的解释如下:

isset()检测变量是否设置

描述bool isset ( mixed var [, mixed var [, ...]] )

如果 var 存在则返回 TRUE,否则返回 FALSE。

如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL的变量,将返回 FALSE。同时要注意的是一个 NULL 字节("")并不等同于 PHP 的 NULL 常数。

警告: isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用defined()函数。

当要 判断一个变量是否已经声明的时候 可以使用 isset 函数

当要 判断一个变量是否已经赋予数据且不为空 可以用 empty 函数

当要 判断 一个变量 存在且不为空 先isset 函数 再用 empty 函数

标签: PHP isset()与empty()的使用区别详解

本文链接地址:https://www.jiuchutong.com/biancheng/295592.html 转载请保留说明!

上一篇:PHP获取当前URL路径的处理方法(适用于多条件筛选列表)(php获取当前访问目录)

下一篇:yii2 数据库读写分离配置示例(数据库读写异常)

  • 分公司亏损总公司可以弥补吗
  • 环境保护税的纳税期限
  • 六税一费优惠政策
  • 公司支付宝账户要交税吗
  • 专票过期了
  • 费用类科目分类怎么避免出错
  • 2019最新运输发票样本
  • 财产理赔收入怎么做账
  • 冲销暂估入库如何做会计核算?
  • 学校收到政府拨付的助学金和奖学金需要缴纳税款吗
  • 印刷配件有哪些
  • 代收代付的发票开给谁
  • 出口退税和企业所得税
  • 企业申报表填写错误
  • 小规模纳税人可以抵扣增值税专用发票吗
  • 生产性生物资产包括哪些
  • 建筑 分包
  • 代缴公司不给停社保怎么办
  • 海关对现金携带数量有要求吗
  • 生活中都交了哪些朋友
  • 股份支付的会计处理?
  • 客户分批付款怎么说
  • 资本性支出计算公式为什么加折旧
  • win7安装sqlserver2008
  • WIN7系统的镜像文件在哪里
  • 营改增后不动产租赁费的税率是多少
  • winpe怎么安装到u盘
  • mac怎么共享文件
  • PHP:mb_list_encodings()的用法_mbstring函数
  • 租赁固定资产成本怎么算
  • vue解决跨域问题
  • 超支福利费按什么计提
  • antd 级联多选
  • 企业汇算清缴费用
  • 土地增值税扣除项目金额怎么算
  • 支付临时工的工资怎么做账
  • 承包经营所得税税率表
  • 应收账款账务处理及案例分析
  • 存货盘亏的账务处理进项税额转出
  • 应用加载慢
  • php curl cookie
  • wordpress整站备份
  • 新建厂房的费用由谁承担
  • 个税申报系统升级要多久
  • 更正申报补缴税款会影响记录
  • sql无法运行
  • 基建并账时用交付使用资产对冲基建拨款
  • 职工体检费用标准规定
  • 交加盟费送赠品可以吗
  • 开个分公司有啥好处
  • 发票冲红重开摘要如何写合适?
  • 疫情防控期间临时性工作补助申请
  • 代开专票作废退税怎么做账?
  • 分公司抬头发票总公司可以抵扣吗
  • 计提的利息汇算清缴时要调整吗
  • 新产品的研发费用扣除例题
  • 年度汇算清缴要补税怎么办
  • 停车费怎么入账会计分录
  • 财务费用包括哪几项
  • win10预览版绿屏重启解决
  • win10防火墙打不开错误代码
  • perform.exe是什么进程
  • win10系统以太网连接图标不见了怎么办
  • win7旗舰版怎么连接无线网络
  • 深入解析windows
  • django 验证码
  • vim tagbar
  • python难度
  • 浏览器app测试要点
  • 寻找志同道合的小伙伴
  • 重庆市国税12366
  • 公路局有钱吗
  • 河北市国家税务局官网
  • 税务登记证发证机关名称
  • 提高增值税税率是什么意思
  • 合并方为进行企业合并发生的佣金和手续费怎么处理?
  • 中国税务总局贵州省税务局
  • 农副产品批发价
  • 接受虚开增值税普票如何补救
  • 白酒消费税怎么计算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设