文档章节

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

yangakw
 yangakw
发布于 2016/11/09 17:18
字数 222
阅读 3
收藏 0
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; } 。。。

本文转载自:http://www.yangakw.cn/2016/10/php%e7%9a%84reflaction%e8%a7%a3%e5%86%b3%e5%ae%9e%e4%be%8b%e5%8c%96...

共有 人打赏支持
上一篇: linux node的配置
下一篇: curl 设置超时
yangakw
粉丝 0
博文 8
码字总数 96428
作品 0
青岛
后端工程师
私信 提问
Node 异步通信解决方案 - crosscom

crosscom crosscom是nodejs进程间及浏览器非同域页面间的Callback方式及Promise方式异步通信解决方案。 支持的环境 nodejs环境 浏览器requirejs环境 浏览器原生JavaScript环境 nodejs环境与浏...

xunum
2017/12/24
46
0
黑马程序员-JAVA基础-Java 集合之泛型

所谓泛型就是允许在定义类、接口时指定类型形参,这个类型形参将在声明变量、创建对象时确定。增加了泛型支持后的集合,完全可以记住集合中元素的类型,并可以在编译时检查集合中元素的类型。...

不最醉不龟归
2016/11/22
18
0
GWA2Perl研发:try-catch无法退出循环、方法传参引用传值及多数据库链接

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

wadelau
11/10
0
0
thinkphp学习--spl_autoload_register 自定义自动加载函数详解

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

share_good
2014/02/12
0
1
wangchenxunum/crosscom

crosscom crosscom是nodejs进程间及浏览器非同域页面间的Callback方式及Promise方式异步通信解决方案。 支持的环境 nodejs环境 浏览器requirejs环境 浏览器原生JavaScript环境 nodejs环境与浏...

wangchenxunum
2017/12/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS 安装PHP5和PHP7

安装PHP5 下载解压二进制包 [root@test-a src]# cd /usr/local/src/[root@test-a src]# wget http://cn2.php.net/distributions/php-5.6.32.tar.bz2[root@test-a src]# tar jxvf php-5.6......

野雪球
今天
3
0
windows上类似dnsmasq的软件Dual DHCP DNS Server

官网地址:http://dhcp-dns-server.sourceforge.net/官网定向的下载地址:https://sourceforge.net/projects/dhcp-dns-server/files/ 设置参考地址:http://blog.51cto.com/zhukeqiang/18264......

xueyuse0012
今天
3
0
LinkedHashMap源码解析

前言 HashMap中的元素时无序的,也就是说遍历HashMap的时候,顺序和放入的顺序是不一样的。 如果需要有序的Map,就可以采用LinkedHashMap. LinkedHashMap通过维护一个包含所有元素的双向链表,...

grace_233
今天
3
0
初识flask

文档 0.10.1版本 http://www.pythondoc.com/flask/index.html 1.0.2版本 https://dormousehole.readthedocs.io/en/latest/ 安装flask $ pip3 install flaskCollecting flask Downloading......

yimingkeji
昨天
5
0
Akka系统《sixteen》译

Actor是一个封装状态(state)和行为(behavior)的对象,它们只通过交换消息通信(放入收件人邮箱的邮件)。从某种意义上说,Actor是最严格的面向对象编程形式,但它更适合将他们视为人:在与Act...

woshixin
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部