![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
BSCheshir |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 21.11.2012 Репутация: нет Всего: нет |
подскажите, есть ли методы, позволяющие реализовать такое поведение для произвольного числа параметров
где f2 может быть любой функцией (т.е. внутрь для решения задачи не лазим) Это сообщение отредактировал(а) BSCheshir - 21.11.2012, 16:03 |
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
Не совсем ясно что вы хотите.. Вы хотите реализовать выполнение в F1 произвольную функцию через параметр?
Это называется анонимные функции в 5.3+
для создания функций с переменным количеством N Аргументов есть функция func_get_args() В 5.3 версии есть приятные изменения которых раньше не было Это сообщение отредактировал(а) Sanchezzz - 21.11.2012, 16:37 -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
BSCheshir |
|
||||||||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 21.11.2012 Репутация: нет Всего: нет |
нет, я хочу передать функции набор параметров, который предоставлен в массиве
и спрашиваю: есть ли методы, позволяющие реализовать такое поведение для произвольного числа параметров? чтобы понятнее - существует ли какой-нить такой синтаксис:
или
Называется - задай правильно вопрос - получишь в нём ответ
вот. это, теоретически, оно ![]() ![]()
Так, а теперь осталось вспомнить, что надо не функцию вызвать, а создать экземпляр класса ![]()
Это сообщение отредактировал(а) BSCheshir - 21.11.2012, 17:36 |
||||||||||||||
|
|||||||||||||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 14 Всего: 137 |
||||
|
||||
BSCheshir |
|
||||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 21.11.2012 Репутация: нет Всего: нет |
Нет, не extract
что-то наподобие такого должно по идее быть о. или этого. ReflectionMethod::invokeArgs() You can't call the constructor of $class like this:
That's no valid callback as first parameter. Let's pick this apart:
Is the same as
Это сообщение отредактировал(а) BSCheshir - 21.11.2012, 22:05 |
||||||||||
|
|||||||||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
-------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
Мне такое чувство что вы пытаетесь создать второй Underscore.php
-------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
http://ru2.php.net/manual/en/reflectioncla...nstanceargs.php
откуда-то из недр php.net -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
BSCheshir |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 21.11.2012 Репутация: нет Всего: нет |
ksnk, вот он - метод моей мечты
![]() Есть некоторые ограничения, но... Оно ![]() в итоге получилось чуть сложнее
Sanchezzz, ну разве что в этой части
Это сообщение отредактировал(а) BSCheshir - 22.11.2012, 13:44 |
||||
|
|||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
BSCheshir, вы можете привести вменяемый пример использования этого конструкта?
-------------------- Мир это Я. Живее всех живых. |
|||
|
||||
BSCheshir |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 21.11.2012 Репутация: нет Всего: нет |
Fortop, ещё и вменяемый? Он же и так красивый, зачем вменяемый? Ну, щас попробуем изобразить
Это сообщение отредактировал(а) BSCheshir - 23.11.2012, 11:59 |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Ну я не увидел смысла в этой фабрике. Красоты соответственно. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Fortop, Какая разница?
Вызвать конструктор объекта с определенным числом параметров, или функцию объекта, с тем-же числом параметров, предварительно вызвав его конструктор без параметров. Во втором случае нам нужен специфический класс, который позволит с собой так поступить, а в первом - любой. В каком месте более некрасиво? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
ksnk, ничерта не понял
![]()
Т.е. ты настаиваешь на том, что второй случай более красив при том, что он же и более ограничен? -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Присмотрелся, наконец, к коду BSCheshir, и тоже не понял смысла
Fortop, Мои рассуждения касались другого случая. Решается задача создания объекта по имени и известному набору параметров. Если пользоваться ReflectionClass, ее можно решить для любых классов(первый случай). Если не пользоваться - только для специально под это заточенных( второй). -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |