难道是疯了,要读写对象的私有属性!
在使用框架的时候,有一个对象,运行框架后已经包装好了,仅仅是属性值需求不一样.
不想继承重写对象的类,竟然想到要读写对象的私有变量和方法,没有想到还成功了!
分享给大家,有需要的拿去!
零安装
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 协议》,转载必须注明作者和本文链接
推荐文章: