【发布时间】:2008-09-22 10:56:07
【问题描述】:
我正在尝试编写一个函数来格式化对象中的每个(字符串)成员/变量,例如使用回调函数。我不知道变量名,所以它必须适用于所有类的对象。
我怎样才能用对象实现类似于array_map 或array_walk 的东西?
【问题讨论】:
我正在尝试编写一个函数来格式化对象中的每个(字符串)成员/变量,例如使用回调函数。我不知道变量名,所以它必须适用于所有类的对象。
我怎样才能用对象实现类似于array_map 或array_walk 的东西?
【问题讨论】:
使用get_object_vars() 获取成员的关联数组,并使用您提到的函数。
顺便说一句,您也可以像对数组一样对对象执行 foreach,这有时也很有用。
【讨论】:
ArrayObject 时,您可以执行$obj->exchangeArray(array_map('func', $obj->getArrayCopy())); 之类的操作
您可以使用get_object_vars(),但如果您需要更多控制,请尝试使用reflection。它比get_object_vars()(或get_class_methods())慢,但更强大。
【讨论】:
您正在寻找get_object_vars / get_class_methods(第一个获取变量,第二个获取方法名称)。
【讨论】: