get_object_vars()与强制转换为数组

2020/12/26 17:21 · php ·  · 0评论

get_object_vars($obj)之间有什么区别(array) $obj吗?

两者似乎都返回对象的公共属性。

哪个更好?

这不是真的。

get_object_vars对范围敏感,并且将返回静态属性以外的所有可见属性,无论其可见性如何。如果您是在课堂以外打电话,则只会获得公开成员;从派生类中,您将获得受保护的成员和公共成员;从班级本身,您将获得所有成员。数组键代表属性名称,不会被篡改。

(array)投的回报,至少在PHP 5.3.0,所有的对象属性,公众和其他。属性的名称根据其保护级别进行了更改:

  • public:不整齐,与属性名称相同
  • protected:属性的键名以a开头 *
  • private:属性的键名以类名开头

有关更多信息,请参见强制转换为数组

希望您能够更好地了解哪种情况最适合您的情况。

get_object_vars()功能是实现所需效果的更清晰方法。尽管将其强制转换为数组也是一种解决方案,但是此行为在更高版本的PHP中可能会更改。

我不知道这两种方法之间是否存在实际差异,但是上面的参数会使我使用该函数。

更好的是您实际需要的是什么。get_object_vars()不显示私有成员和受保护成员。有关示例,请参见手册中的此注释

本文地址:http://php.askforanswer.com/get_object_varsyuqiangzhizhuanhuanweishuzu.html
文章标签: ,   ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!