zoukankan      html  css  js  c++  java
  • php反射的使用

    说到反射ReflectionClass大家可能都知道了,通过将一个类的各种属性封装一下供用户使用。

    我一开始的时候很是疑惑,既然类的名字都知道了为啥还要用反射,网上别人给的例子让我看来也纯粹是为了反射而反射,后来看到kohana框架的源码中对反射的使用,我了解了,一句话:反射可以用来得到一些你从类的名字中获取不到的属性。

    代码片段:

              $extension = 'class '.$class.' extends '.$class.'_Core { }';
    
                // Start class analysis
                $core = new ReflectionClass($class.'_Core');
    
                if ($core->isAbstract())
                {
                    // Make the extension abstract
                    $extension = 'abstract '.$extension;
                }
    //var_dump("extension:".$extension);
    
                // Transparent class extensions are handled using eval. This is
                // a disgusting hack, but it gets the job done.
                eval($extension);
    

      这里获得了这个类是不是一个抽象类这个属性。当然还有其他的属性我们可以用

    可以在php反射官方文档中得到。

    总结下来就是,如果你需要实例化一个类,除了类的名字外你还想知道其他的关于这个类的属性信息,那么你应该用反射来得到。

  • 相关阅读:
    我开博客了,啦啦啦.
    cf593div2
    Comet OJ
    cf591div2abc
    cfround586ac
    cf589div2
    cf573div2
    Codeforces Round #569 (Div. 2)
    uva11729 水题
    luogu1984 [SDOI2008] 烧水问题
  • 原文地址:https://www.cnblogs.com/xiongji/p/3763585.html
Copyright © 2011-2022 走看看