【问题标题】:PHP: array_map on object?PHP:对象上的array_map?
【发布时间】:2008-09-22 10:56:07
【问题描述】:

我正在尝试编写一个函数来格式化对象中的每个(字符串)成员/变量,例如使用回调函数。我不知道变量名,所以它必须适用于所有类的对象。

我怎样才能用对象实现类似于array_map 或array_walk 的东西?

【问题讨论】:

    标签: php oop


    【解决方案1】:

    使用get_object_vars() 获取成员的关联数组,并使用您提到的函数。

    顺便说一句,您也可以像对数组一样对对象执行 foreach,这有时也很有用。

    【讨论】:

    • 请注意,在极少数情况下,当您使用ArrayObject 时,您可以执行$obj->exchangeArray(array_map('func', $obj->getArrayCopy())); 之类的操作
    【解决方案2】:

    您可以使用get_object_vars(),但如果您需要更多控制,请尝试使用reflection。它比get_object_vars()(或get_class_methods())慢,但更强大。

    【讨论】:

    • 这是我不知道的 php 的一个非常酷的功能!我不确定我会如何实际使用它,但这仍然很酷!
    【解决方案3】:

    您正在寻找get_object_vars / get_class_methods(第一个获取变量,第二个获取方法名称)。

    【讨论】:

      猜你喜欢
      • 2016-05-02
      • 1970-01-01
      • 2012-10-13
      • 1970-01-01
      • 1970-01-01
      • 2014-10-18
      • 2017-05-08
      • 1970-01-01
      • 2011-10-14
      相关资源
      最近更新 更多