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

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

零安装

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
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 1

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

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

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