文档章节

php的Reflaction解决实例化对象参数不确定的问题

yangakw
 yangakw
发布于 2016/11/09 17:18
字数 222
阅读 72
收藏 0

精选30+云产品,助力企业轻松上云!>>>

Reflaction是一个反射类,功能的是获取类包含的属性,以及相应的操作。 问题的产生是我在写一个工厂类,通过__call()方法去实例化目标对象, __call($name,$argv[]) __call()是php的魔术方法,其作用是当调用者找不到他的类中对应的函数时触发 比如: <?php class a{ public function __call($name , $argv[]){ echo $name; } } new a()->getName(); //结果是 getName ?> __call方法的$name参数是调用的函数名,$argv[]会把参数组合成数组 由于对象的参数是不确定的,所以__call();是不能实例化目标对象的。 但是Reflection可以解决这一问题 主要代码逻辑如下 。。。 public function __call($name , $argv[]){ //从函数名中获取类名 $ClassName=substr($name,0,-4); $ref=new /ReflactionClass($ClassName); $Object=$ref->newInteranceClass($argv); return $Object; } 。。。
上一篇: linux node的配置
下一篇: curl 设置超时
yangakw
粉丝 0
博文 8
码字总数 96428
作品 0
青岛
后端工程师
私信 提问
加载中
请先登录后再评论。
利用php 实现插件式构架

这个话题源自最近工作中一个新项目的需求,该项目需要和数量不定的第三方平台进行对接,而这里提到的第三方平台会随着项目进度逐渐增加 站在程序构架的角度,对于这种类型需求如果可以符合“...

大灰狼wow
2014/08/13
156
1
2019秋JAVA第二周课程总结

Java初探 Java也是OOP,因而它和其他OOP基本要素一致。 包括 封装 继承 多态 前两项都非常好理解,在多态(同一类不同表现形式)上难以深入理解 多态 (等号)左父右子为多态 只有方法能覆盖...

osc_zh10j2cp
2019/09/09
4
0
thinkphp学习--spl_autoload_register 自定义自动加载函数详解

1.思考一个问题: 在一个php页面实例化时,必须先包含对应类文件,如果页面中实例化多个对象,怎么办呢?你可能会想,那就包含多个类文件嘛? 那如果这个对象是根据当前的参数动态实例化得到的...

share_good
2014/02/12
348
1
深入 Laravel 内核之IOC容器

升级工厂前的准备工作 无规矩不成方圆,随着越来越多的行为出现,我们需要需要定下一些规范。 为了约束每一个行为的规范,需要定义一个行为接口: 按照接口规范修改前述的行为类: 使用依赖注...

osc_5rgbamh9
07/02
2
0
GWA2Perl研发:try-catch无法退出循环、方法传参引用传值及多数据库链接

在使用 GWA2Perl 开发时遇到一些破费周折才发现的 Bug或改进的功能,分析记录如下,备忘。 GWA2 是一套跨语言的网络应用软件开发框架,目前有PHP、Java和Perl版本可供下载选用,也即 GWA2PH...

wadelau
2018/11/10
28
0

没有更多内容

加载失败,请刷新页面

加载更多

将字符串拆分为具有多个单词边界定界符的单词 - Split Strings into words with multiple word boundary delimiters

问题: I think what I want to do is a fairly common task but I've found no reference on the web. 我认为我想做的是一项相当普通的任务,但是我在网络上找不到任何参考。 I have text ...

fyin1314
34分钟前
9
0
jQuery选择器中的通配符 - Wildcards in jQuery selectors

问题: I'm trying to use a wildcard to get the id of all the elements whose id begin with "jander". 我正在尝试使用通配符来获取id以“jander”开头的所有元素的id。 I tried $('#jand......

法国红酒甜
今天
19
0
唐山5.1级地震 百度人工智能技术帮上忙:成都减灾所提前30秒让北京、天津市民收到预警

本文作者:y****n 7月12日6时38分在河北唐山市古冶区发生5.1级地震,成都高新减灾研究所与应急管理部门联合建成的大陆地震预警网成功预警该地震,给唐山市提前3秒预警,给天津市提前33秒预警...

百度开发者中心
昨天
30
0
如何使用PHP发送POST请求? - How do I send a POST request with PHP?

问题: Actually I want to read the contents that come after the search query, when it is done. 实际上,我想阅读搜索查询之后的内容,完成之后。 The problem is that the URL only a......

javail
今天
14
0
如何从Java读取文件夹中的所有文件? - How to read all files in a folder from Java?

问题: 如何通过Java读取文件夹中的所有文件? 解决方案: 参考一: https://stackoom.com/question/7jt2/如何从Java读取文件夹中的所有文件 参考二: https://oldbug.net/q/7jt2/How-to-rea...

富含淀粉
今天
25
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部