yangakw yangakw

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

in 木有分类或者该分类已被删除read (64) 文章转载请注明来源!

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;

}

。。。

jrotty WeChat Pay

微信打赏

jrotty Alipay

支付宝打赏

文章二维码

扫描二维码,在手机上阅读!

none

此处评论已关闭

博客已运行
© 2017 yangakw
PREVIOUS NEXT
雷姆
拉姆