С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
9 / 9 / 5
Регистрация: 14.01.2015
Сообщений: 173

Как достать из массива метод имя которого в виде ключа

31.08.2015, 13:28. Показов 798. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Уважаемые форумчане, подскажите.
Есть массив с именами методов класса. Что-то типа:

PHP
1
2
3
4
5
6
array(
"ClassName::Method1();",
"ClassName::Method2();",
"ClassNameSecond::MethodTwo();",
...
);
Вопрос, как "достать эти методы чтобы их исполнить? Циклом + array_shift? Если да - то я так понимаю перехватывать извлеченное значение не нужно?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.08.2015, 13:28
Ответы с готовыми решениями:

Объект класса, имя которого хранится в виде текста
Приветствую всех. Возможно ли создать объект класса, если его имя хранится в текстовой переменной? Сразу уточню, что определение этого...

Как изменить имя ключа реестра???
...собственно.

Как изменить имя ключа в коллекции?
Есть коллекция Dictionary<String, Process> PrcDic; (Process - самодельный класс). А как изменить значение одного из ключей...

4
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
31.08.2015, 13:38
Goldsilver, методы статичные? Если да, то
PHP
1
2
3
4
5
6
7
8
$arr = array(
"ClassName::Method1",
"ClassName::Method2",
"ClassNameSecond::MethodTwo"
);
foreach ($arr as $a) {
    call_user_func($a);
}
1
9 / 9 / 5
Регистрация: 14.01.2015
Сообщений: 173
31.08.2015, 14:01  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
методы статичные? Если да, то
спасибо.

Вопрос. про безопасность.
скажите, а символы внутри списка (:: и ; ) безопасно? спрашиваю на всякий... По идее имена не приходят из-вне, да и не выводятся в браузер пользователю/не передаются в базу с запросом... Должно быть все норм как бы...

А еще call_user_func. Может ли кто как-то "подсолить" с ее помощью? По идее функции не передаются пользовательские значения, только те что заданы "админом"...
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
31.08.2015, 14:10
Цитата Сообщение от Goldsilver Посмотреть сообщение
Вопрос. про безопасность.
С безопасностью все нормально.
Цитата Сообщение от Goldsilver Посмотреть сообщение
Конкотенацией все сводится "в кучу" исходя из имени родительского класса + дочка + метод + между ними нужные символы (:: и ; )
это лишнее. И так будет работать:
PHP
1
2
3
4
5
6
7
8
class ClassName {
    public static function Method1() {
        echo '111';
    }
}
$class = 'ClassName';
$method = 'Method1';
$class::$method();
1
9 / 9 / 5
Регистрация: 14.01.2015
Сообщений: 173
31.08.2015, 14:23  [ТС]
спасибо.
$class::$method();
За это тоже, а то делалось что-то типа:
PHP
1
$class . "::" . $method . "();";
Просто вся "соль" в том, что есть родитель и дочки. Родитель имеет имя вида "ClassParennt, а дочки вида "ClassParentFirstChild", "ClassParentSecondChild" т.е. сочитание родителя и имени дочернего класса.
Делается на всякий случай для предотвращения конфликта имен . Можно сделать через пространство имен и отбросить родительскую "фамилию" - но в этом я ноль, нужно разбираться что- к чему.
Или все-таки подумать про пространство, попутно изучив новую технику? сложно там понять? Долго вникать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.08.2015, 14:23
Помогаю со студенческими работами здесь

Как оформить операцию создания (формирования) массива структур из 5 полей (фамилия, имя, улица, дом, квартира) в виде функции?
Как операцию создания массива структур (фамилия, имя, улица, № дома, № квартиры) записать в виде функции? Массив структур тут: ...

Как достать из базы данных имя документа txt и текст?
У меня есть база данных MySQL, там есть два столбика третий title (содержащий название документа .txt) и четвертый note (содержащий текст...

Достать число из публичного ключа RSA
У меня есть публичный ключ алгоритма RSA, он выглядит так: ...

Как достать метод одной формы из другой?
Всем привет! Есть у меня главная форма, на которой есть кнопка закрыть (стандартная) и кнопка GO: private void...

Метод Post - rest сервис, как достать данные?
Здравствуйте , мне нужна помощь или хоть совет/ссылка по теме . Задача заключается в следующем: я хочу передать массив на rest сервис ,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru