难道是疯了,要读写对象的私有属性!

在使用框架的时候,有一个对象,运行框架后已经包装好了,仅仅是属性值需求不一样.
不想继承重写对象的类,竟然想到要读写对象的私有变量和方法,没有想到还成功了!
分享给大家,有需要的拿去!

零安装

composer require xindong888/tools

一常用经典算法功能

1 getPrivateAttrOne 通过转成数组的方式获取对象的私有属性

2 getPrivateAttr 通过匿名函数来获取对象的私有字段的值

3 generateTree 通过引用进行无限分类

4 setPrivateAttr 设置对象私有属性值

二.参数说明

方法调用均为静态

Com\Xjke\Tools\T::getPrivateAttrOne(object $obj, string $name)

 /** 
 * 获取对象的私有属性值 
 * @param object $obj object 对象
 * @param string $name string 私有字段的名称 
 * @return mixed 返回的是字段的值 
 */

Com\Xjke\Tools\T::getPrivateAttr(object $obj, string $name)

 /**
 * 通过匿名函数来获取对象的私有字段的值 
 * @param $obj object 对象 
 * @param $name string 字段的名称 
 * @return mixed 返回的是字段的值
 */

Com\Xjke\Tools\T::generateTree($data, $id = ‘id’, $pid = ‘pid’, $children = ‘children’)

 /** 
 * 通过引用进行无限分类 
 * @param array|mixed $data 平面带有父ID的数据 
 * @param string $id id名称 
 * @param string $pid 父字段的名称 
 * @param string $children 子属性名称 
 * @return array 返回树状结构的值 
 */

Com\Xjke\Tools\T::setPrivateAttr(object &$obj, array $arr)

 /** 
 * 设置对象的私有属性值 
 * @param $obj object 必须是对象 
 * @param $arr array 数组 必须是数组 ['属性名'=>'属性值']
 * @return bool 
 */
本作品采用《CC 协议》,转载必须注明作者和本文链接
金鹰在线
YingFramework
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 1

我试过读取私有方法,私有属性,挺好玩的,用的是反射。

2年前 评论
YingFramework (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!