php反射的使用
说到反射ReflectionClass大家可能都知道了,通过将一个类的各种属性封装一下供用户使用。
我一开始的时候很是疑惑,既然类的名字都知道了为啥还要用反射,网上别人给的例子让我看来也纯粹是为了反射而反射,后来看到kohana框架的源码中对反射的使用,我了解了,一句话:反射可以用来得到一些你从类的名字中获取不到的属性。
代码片段:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 |
$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反射官方文档中得到。
总结下来就是,如果你需要实例化一个类,除了类的名字外你还想知道其他的关于这个类的属性信息,那么你应该用反射来得到。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。