文档章节

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
青岛
后端工程师
私信 提问
GWA2Perl研发:try-catch无法退出循环、方法传参引用传值及多数据库链接

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

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

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

share_good
2014/02/12
0
1
unity实例化游戏澳门金沙平台搭建对象instantiate()

unity一共有10个实例澳门金沙平台搭建论坛:haozbbs.com Q1446595067 化对象的函数重载 1、参数只有一个object对象 实例化prefab 结果如图: cube的位置不确定是不是随机的,我试了几个,最后...

iysij
2018/07/07
0
0
Node 异步通信解决方案 - crosscom

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

xunum
2017/12/24
46
0
PHP简明教程-面向对象基础 2

PHP简明教程 面向对象基础 2 其他的几个魔术方法 方法名 触发时机 参数1 参数2 备注 callStatic 当调用不存在的静态方法的时候自动执行这个方法 函数名 参数(数组) 该方法必须是static slee...

栗子boomboomboom
2017/07/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

centos7重置密码、单用户模式、救援模式、ls命令、chmod命令

在工作当中如果我们错误的配置了文件使服务器不能正常启动或者忘记密码不能登录系统,如何解决这些问题呢?重装系统是可以实现的,但是往往不能轻易重装系统的,下面用忘记密码作为例子讲解如...

李超小牛子
今天
1
0
Python如何开发桌面应用程序?Python基础教程,第十三讲,图形界面

当使用桌面应用程序的时候,有没有那么一瞬间,想学习一下桌面应用程序开发?行业内专业的桌面应用程序开发一般是C++,C#来做,Java开发的也有,但是比较少。本节课会介绍Python的GUI(图形用...

程序员补给栈
今天
5
0
kafka在的使用

一、基本概念 介绍 Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。 这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统...

狼王黄师傅
今天
3
0
Android JNI总结

0x01 JNI介绍 JNI是Java Native Interface的缩写,JNI不是Android专有的东西,它是从Java继承而来,但是在Android中,JNI的作用和重要性大大增强。 JNI在Android中起着连接Java和C/C++层的作...

天王盖地虎626
昨天
3
0
大数据教程(11.8)Hive1.2.2简介&初体验

上一篇文章分析了Hive1.2.2的安装,本节博主将分享Hive的体验&Hive服务端和客户端的使用方法。 一、Hive与hadoop直接的关系 Hive利用HDFS存储数据,利用MapReduce查询数据。 二、Hive与传统数...

em_aaron
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部