2009-09-03 68 views

回答

6

您可以使用get_object_vars列出对象变量,并使用get_class_methods列出给定类的方法。

+0

注意这不适用于魔法方法。 – OIS 2009-09-03 08:34:47

12
Reflection::export(new ReflectionObject($Yourobject)); 
11

您可以使用反射API的ReflectionClass::getPropertiesReflectionClass::getMethods的方法来做到这一点(虽然API似乎并没有被很好的记录)。请注意,PHP反射仅反映编译时间信息,而不是运行时对象。如果希望运行时对象也包含在查询结果中,最好使用get_object_vars,get_class_varsget_class_methods函数。 get_object_varsget_class_vars之间的区别在于,前者可以获得给定对象上的所有变量(包括在运行时动态添加的变量),而后者只给出那些已经在类中显式声明的变量。

+0

非常有帮助和完整的答案,谢谢! +1 – 2011-01-23 14:12:12

+0

我认为当你说:“... get_class_vars只给出那些已经在类中明确声明的变量”时,还有一个重要的点需要添加,并且ALSO相关的VALUES是在类中声明的默认值)而不是运行时值。 – 2011-01-24 08:05:46