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

£可爱£侵袭症+ 提交于 2019-12-05 12:34:43

判断类的变量是否存在,可以用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更准确点。

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