功能
函数式API
反射API
类型判断
is_int/is_bool/is_array等
—
获取对象的类名
get_class
ReflectionObject::getName
获取对象父类
get_parent_class
ReflectionObject::getParentClass
类型/继承检测
instanceof/is_a/is_subclass_of
ReflectionObject::isInstance/isSubclassOf
生成器
—
ReflectionGenerator
总结
本文对PHP中的反射机制做了简要总结,并与在运行时获取代码信息的函数式API做了对比。即使你token_get_all用得再熟练,preg_match等文本操作用得再顺手,反射API仍有其独到一面,值得了解。如本人之前博文“PHP中的重载”所言,有了反射,function_exits/class_exits、call_user_func这些函数应该可以退休。但是考虑到兼容、使用便利、运行效率等因素,许多框架仍然依赖这些API。