php的Reflaction解决实例化对象参数不确定的问题
博客专区 > yangakw 的博客 > 博客详情
php的Reflaction解决实例化对象参数不确定的问题
yangakw 发表于1年前
php的Reflaction解决实例化对象参数不确定的问题
  • 发表于 1年前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

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; } 。。。
共有 人打赏支持
粉丝 0
博文 7
码字总数 704
×
yangakw
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: