Я пытаюсь написать функцию, которая форматирует каждый (строковый) член / переменную в объекте, например, с помощью функции обратного вызова. Имена переменных мне неизвестны, поэтому она должна работать с объектами всех классов.
Как я могу добиться чего-то похожего на array_map или array_walk с объектами?






используйте get_object_vars (), чтобы получить ассоциативный массив членов, и используйте упомянутые вами функции.
кстати, вы также можете выполнить foreach для объекта, как и для массива, что также иногда полезно.
Вы ищете get_object_vars / get_class_methods (первый получает переменные, второй - имена методов).
Вы можете использовать get_object_vars(), но если вам нужно больше контроля, попробуйте использовать отражение. Он медленнее, чем get_object_vars() (или get_class_methods(), если на то пошло), но намного мощнее.
это действительно классная функциональность PHP, о которой я не знал! Я не совсем уверен, как бы я на самом деле это использовать, но это все равно круто!
Обратите внимание, что в редком случае, когда вы используете
ArrayObject, вы можете сделать что-то вроде$obj->exchangeArray(array_map('func', $obj->getArrayCopy()));.