Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Передача не определенного количества аргументов функции.
Поясню...
У меня функция определяется динамически, т.е. я не знаю что за функция будет использоваться и сколько параметров она ожидает получить.
Как вариант
Покинул форум
Сообщений всего: 12
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
Ch_chov пишет:
тогда call_user_func
Тогда вы попали в яблочко!
Мне больше подходит call_user_func_array, ну это без разницы.
Примите мою благодарность
egork
Отправлено: 01 Сентября, 2010 - 08:41:28
Новичок
Покинул форум
Сообщений всего: 12
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
Ну и еще один вопрос в догонку.
Как определить количиство параметров функции?
Есть func_num_args, но она вызывается только из самой функции. А извне?
alexspb
Отправлено: 01 Сентября, 2010 - 08:56:34
Посетитель
Покинул форум
Сообщений всего: 260
Дата рег-ции: Май 2010
Помог: 0 раз(а)
egork пишет:
Есть func_num_args, но она вызывается только из самой функции. А извне?
Как вы можете определить количество параметров, переданных функции, до того как передадите??? Поэтому, либо в самой функции. либо, вы должны знать, сколько передаете в момент вызова функции.
----- Хостинг - неограниченно доменов на одну папку Ajax - отличное введение
egork
Отправлено: 01 Сентября, 2010 - 09:40:42
Новичок
Покинул форум
Сообщений всего: 12
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
Не переданных, а тех, которые она ожидает получить по умолчанию, ну к примеру:
function test($var1, $var2) { ... }
функция ожидает получить 2 параметра.
func_num_args привел не уместно.
Я уже пришел к выводу что функция которой я интересуюсь особо и не нужна
Вопрос снимается!
JustUserR
Отправлено: 01 Сентября, 2010 - 16:47:58
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
egork пишет:
Не переданных, а тех, которые она ожидает получить по умолчанию
Для того чтобы получить информацию о сигнатуре некоторой функции то есть числу принимаемых ей аргументов и их значениями по умолчанию - а также для просмотра исходного интерпретиреумого блока кода для ее реализации - можно использовать возможности модуля runkit Дело в том что в PHP вплоть до последних версий функции не являлись объектами первого рода - и соответственно не имели внутренних областей определения и возможности обращения к ним как к объектам - для полчения некоторой информации или ее модификации - и поэтому для динамической работы с функции были разработаны отдельные внешние средства Более подробную информации можеите посмотреть здесь http://www.php.su/functions/?cat=runkit
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Ch_chov
Отправлено: 01 Сентября, 2010 - 20:26:06
Постоянный участник
Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008 Откуда: из города
Помог: 90 раз(а)
egork, имхо у вас ошибки при проектировании вашего скрипта.
Не могу себе представить, для чего может понадобиться определять сигнатуры функций.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.