是否有一个函数列出PHP中所有对象的属性(如公共方法和属性),类似于Python的dir()
?PHP的函数列出所有对象的属性
回答
您可以使用get_object_vars
列出对象变量,并使用get_class_methods
列出给定类的方法。
PHP5包括一个完整的Reflection API超越了以往的get_class_methods和get_object_vars可以做的事情。
Reflection::export(new ReflectionObject($Yourobject));
您可以使用反射API的ReflectionClass::getProperties
和ReflectionClass::getMethods
的方法来做到这一点(虽然API似乎并没有被很好的记录)。请注意,PHP反射仅反映编译时间信息,而不是运行时对象。如果希望运行时对象也包含在查询结果中,最好使用get_object_vars
,get_class_vars
和get_class_methods
函数。 get_object_vars
和get_class_vars
之间的区别在于,前者可以获得给定对象上的所有变量(包括在运行时动态添加的变量),而后者只给出那些已经在类中显式声明的变量。
非常有帮助和完整的答案,谢谢! +1 – 2011-01-23 14:12:12
我认为当你说:“... get_class_vars只给出那些已经在类中明确声明的变量”时,还有一个重要的点需要添加,并且ALSO相关的VALUES是在类中声明的默认值)而不是运行时值。 – 2011-01-24 08:05:46
- 1. PHP计数对象的属性出现
- 2. 如何列出Powershell对象的所有属性?
- 3. Javascript - 列出来自对象的所有属性/方法
- 4. 函数对象有没有属性 'entry_set'
- 5. 列出具有应用属性的对象属性
- 6. AttributeError:'函数'对象没有属性
- 7. TyperError:'函数'对象没有属性'_getitem_'
- 8. 按对象的所有属性分组
- 9. 查找对象的所有属性
- 10. 获取所有值的属性对象
- 11. 列出所有模块的方法和属性作为对象列表
- 12. 如何列出所有类的属性
- 13. 访问具有属性的php对象
- 14. 列出所有类对象
- 15. AppleScript:获取对象或类的所有属性的列表
- 16. 函数返回对象的属性
- 17. Javascript函数对象的属性
- 18. 循环遍历对象的所有属性php
- 19. 导出对象的属性
- 20. XSLT:传递一个标签的所有属性的PHP函数
- 21. 查找对象的所有属性和子属性
- 22. MATLAB - 获取属性所属的对象?
- 23. 如何序列化NHibernate映射对象的所有属性?
- 24. Javascript改变对象阵列中所有项目的属性
- 25. 任何将删除空对象属性的PHP函数?
- 26. 如何过滤所有属性为对象的对象?
- 27. javascript/omniture - 如何清除对象(s对象)的所有属性
- 28. 列出某个类的所有对象
- 29. 列出对象respond_to的所有方法?
- 30. Implode对象数组中的给定名称的所有属性 - PHP
注意这不适用于魔法方法。 – OIS 2009-09-03 08:34:47