首页 > 其他 > 详细

判断对象的变量是否存在,isset和property_exists区别

时间:2019-11-25 01:41:19      阅读:115      评论:0      收藏:0      [点我收藏+]

判断类的变量是否存在,可以用isset和property_exists判断,他们俩有着细微的区别。首先我们翻一下手册了解一下两者的具体功能。

 property_exists:检查对象或类是否具有该属性(以及是否能在当前范围内访问)。如下图

技术分享图片

 

 只要是类定义了该变量,无论是public还是private,用property_exists都能检测出来。

isset:检测变量是否已设置并且非 NULL,如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。

如下图,定义了类成员变量$param且没有给它赋值,此时isset判断是false,相当于没有这个变量,而property_exists为true。当$param有值时,isset和propery_exists都为true。当$param有值又unset掉该值时,propery_exists依然为true,而isset则为false。

技术分享图片

 

 总的来说,isset和property_exists都可以用来检验类成员变量,但是property_exists更准确点。

判断对象的变量是否存在,isset和property_exists区别

原文:https://www.cnblogs.com/smallzhen/p/11925311.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!