PHP: array_map на объекте?

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

Как я могу добиться чего-то похожего на array_map или array_walk с объектами?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
9
0
26 543
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

используйте get_object_vars (), чтобы получить ассоциативный массив членов, и используйте упомянутые вами функции.

кстати, вы также можете выполнить foreach для объекта, как и для массива, что также иногда полезно.

Обратите внимание, что в редком случае, когда вы используете ArrayObject, вы можете сделать что-то вроде $obj->exchangeArray(array_map('func', $obj->getArrayCopy()));.

Tyler V. 02.11.2016 20:53

Вы ищете get_object_vars / get_class_methods (первый получает переменные, второй - имена методов).

Вы можете использовать get_object_vars(), но если вам нужно больше контроля, попробуйте использовать отражение. Он медленнее, чем get_object_vars() (или get_class_methods(), если на то пошло), но намного мощнее.

это действительно классная функциональность PHP, о которой я не знал! Я не совсем уверен, как бы я на самом деле это использовать, но это все равно круто!

nickf 22.09.2008 16:52

Другие вопросы по теме