Параметры функции

[Gisma]

Новичок
Параметры функции

Народ, подскажите как узнать сколько параметров принимает PHP - функция.
Приведу пример:
Допустим есть функция `some_function($a,$b,$c='Test')`
задача минимум как узнать кол-во параметров у этой функции, в данном случае их 3 :)
задача максимум узнать что параметров 3, и третий параметр имеет дефолтовое значение Test
 

denver

?>Скриптер
[Gisma]
В последней задаче нужно получить "Test" или просто узнать что есть дефолтное значение?

Да и зачем это всё, если не секрет?
 

[Gisma]

Новичок
нужно узнать что дефолтовое значение равно Test,
например : возможность экспорта php-функций в другие языки/системы
да и вообще, интересно возможно ли?;)
 

[Gisma]

Новичок
прикольно, спасибо:)

-~{}~ 12.10.06 03:30:

кстати, возможно ли решение поставленной проблемы, без анализа исходного кода функции? :)
Это будет полезно, в тех случаях, когда местоположение исходника функции неизвестно
 

denver

?>Скриптер
Задача минимум например так:

eval'ом запускаешь
1. "some_function()"
2. "some_function(1)"
3. "some_function(1, 2)"
4. ...

А в set_error_handler по отловленной ошибке определяешь что в твоем вызове функции не так.
 

[Gisma]

Новичок
Андрейка
Fatal Error отлавливаются :) Но вот если будут E_PARSE и т.д. тогда хрен
denver
но согласитесь это же извращение! ;)
 

Андрейка

Senior pomidor developer
[Gisma]
Fatal error: Argument 1 passed to a() must be an object of class FormatMyHDD, called in PHPDocument3 on line 7 and defined in PHPDocument3 on line 3

удачи в поиске кол-ва параметров :)
 

denver

?>Скриптер
Андрейка
Сгласен, всё равно что на АЭС тыкать кнопка за кнопкой, записывать результаты, для того чтобы восстановить потеряный мануал :)
 

[Gisma]

Новичок
ALL извращенцы, а задачу максимум отловить сможем?;)
Да и такой метод определения, скажем так небезопасен
Представьте есть функция sendOneMillionDollar... и раз 5 ее вызвать :) Также если у метода есть параметры с дефолтовым значением мы их не отловим;(
 

Андрейка

Senior pomidor developer
[Gisma]
ну попробуй поищи еще всякие отладочные расширения.. rename_function же есть, мож и параметры будет че интересное )
 

[Gisma]

Новичок
Походу мне поможет функция parsekit_func_arginfo
жалко расширение не стандартное;(
 
Сверху