php中获取对象属性的方法有哪些-亚博电竞手机版

这期内容当中小编将会给大家带来有关php中获取对象属性的方法有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

具体如下:

classtestclass{ private$a; protected$b; public$c; public$d; publicstatic$e; privatefunctionfunca(){ } protectedfunctionfuncb(){ } publicfunctionfuncc(){ } publicfunctiongetpropertymethodone(){ echo"[get_object_vars]",php_eol; $vars=get_object_vars($this); foreach($varsas$k=>$v){ echo$k,'=>',$v,php_eol; } } publicfunctiongetpropertymethodtwo(){ echo"[foreachobject]",php_eol; foreach($thisas$k=>$v){ echo$k,'=>',$v,php_eol; } } publicfunctiongetpropertymethodthree(){ echo"[reflection]",php_eol; $class=newreflectionclass($this); foreach($class->getproperties(reflectionproperty::is_public)as$property){ if(!$property->isstatic()){ echo$property->getname(),'=>',$property->getvalue($this),php_eol; } } } }

测试代码一

$obj=newtestclass(); echo"[get_object_vars]",php_eol; $vars=get_object_vars($obj); foreach($varsas$k=>$v){ echo$k,'=>',$v,php_eol; } echo"[foreachobject]",php_eol; foreach($objas$k=>$v){ echo$k,'=>',$v,php_eol; } echo"[reflection]",php_eol; $class=newreflectionclass($obj); foreach($class->getproperties(reflectionproperty::is_public)as$property){ if(!$property->isstatic()){ echo$property->getname(),'=>',$property->getvalue($obj),php_eol; } }

输出:

[get_object_vars]c =>d =>[foreach object]c =>d =>[reflection]c =>d =>

可见,当着三种方法用在类的外部时,结果是一样的。get_object_vars()和foreach是获取到的是对象的public non-static属性,而通过反射的话则需要手动筛选出public non-static属性。

测试代码二

$obj=newtestclass(); $obj->getpropertymethodone(); $obj->getpropertymethodtwo(); $obj->getpropertymethodthree();

输出

[get_object_vars]a =>b =>c =>d =>[foreach object]a =>b =>c =>d =>[reflection]c =>d =>

可见,get_object_vars()和foreach用在类内部时,private、protected、public的实例属性都能获取到。反射就不用说了,通过手动筛选,各种类型的属性都能获取到。

上述就是小编为大家分享的php中获取对象属性的方法有哪些了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注恰卡编程网行业资讯频道。

展开全文
内容来源于互联网和用户投稿,文章中一旦含有亚博电竞手机版的联系方式务必识别真假,本站仅做信息展示不承担任何相关责任,如有侵权或涉及法律问题请联系亚博电竞手机版删除

最新文章

网站地图