PHP 5 具有完整的反射 API,添加了对类、接口、函数、方法和扩展进行反向工程的能力。 此外,反射 API 提供了方法来取出函数、类和方法中的文档注释。通过使用反射API可以分析其他的类、接口、方法、属性、函数和扩展。下面举例展示PHP自身类 Reflection 的定义:
Reflection::export(<span>new</span> ReflectionClass(<span>'</span><span>Reflection</span><span>'</span>));
打印结果如下:
Class [ <<span>internal</span>:Reflection> <span>class</span><span> Reflection ] { </span>- Constants [<span>0</span><span>] { } </span>- Static properties [<span>0</span><span>] { } </span>- Static methods [<span>2</span><span>] { Method [ </span><<span>internal</span>:Reflection> <span>static</span> <span>public</span><span> method getModifierNames ] { </span>- Parameters [<span>1</span><span>] { Parameter #</span><span>0</span> [ <required><span> $modifiers ] } } Method [ </span><<span>internal</span>:Reflection> <span>static</span> <span>public</span><span> method export ] { </span>- Parameters [<span>2</span><span>] { Parameter #</span><span>0</span> [ <required><span> Reflector $reflector ] Parameter #</span><span>1</span> [ <optional> $<span>return</span><span> ] } } } </span>- Properties [<span>0</span><span>] { } </span>- Methods [<span>0</span><span>] { } }</span>
从打印结果可以看出 export 是 Reflection 类的一个public 的静态方法,提供两个参数,一个必须提供的 reflector类型 ,另一个是可选的,bool类型。不只是export,反射API还有很多,通过这些API我们还可以查询类的元数据,动态的调用类的静态方法,反射还能被用来创建自动稳定编写系统。反射API定义了大量is和has类型的函数,它们可以用来在代码中执行条件判断。比如通过isUserDefined()来判断已经加载的类中哪些是用户定义的。
(未完待续)

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Dreamweaver Mac version
Visual web development tools

WebStorm Mac version
Useful JavaScript development tools

Dreamweaver CS6
Visual web development tools

SublimeText3 English version
Recommended: Win version, supports code prompts!

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.
