6.10.11 使用Reflection(反射)API
PHP的面向对象引擎还包括反射API。反射是通过访问已有类和对象来找到类和对象的结构和内容的能力。当使用未知或文档不详的类时,这个功能就非常有用,例如使用经过编码的PHP脚本。
这个API非常复杂,但是可以通过一些简单的例子介绍其用途。例如,本章所定义的Page类。通过反射API,可以获得关于该类的详细信息,如程序清单6-5所示。
程序清单6-5 reflection.php——显示关于Page类的信息
<?php
require_once("page.inc");
$class=new ReflectionClass("Page");
echo"<pre>".$class."</pre>";
?>
这里,使用了Reflection类的toString()方法来打印这个数据。请注意,<pre>标记位于不同的行上,不要与toString()方法混淆。
以上代码的第一个输出如图6-3所示。
图 6-3 反射API的输出信息是非常详细的