Как динамически проверить количество аргументов функции в PHP - PullRequest
11 голосов
/ 07 декабря 2008

как я могу проверить во время выполнения много параметров, которые есть у метода или функции в PHP.

пример

class foo {
   function bar ( arg1, arg2 ){
    .....
   }
}

Мне нужно знать, есть ли способ запустить что-то вроде

get_func_arg_number ( "foo", "bar" )

и результат будет

2

Ответы [ 4 ]

28 голосов
/ 07 декабря 2008

Вам нужно использовать отражение , чтобы сделать это.

$method = new ReflectionMethod('foo', 'bar');
$num = $method->getNumberOfParameters();
9 голосов
/ 07 декабря 2008

Отражение это то, что вы ищете здесь

class foo {
   function bar ( $arg1, $arg2 ){

   }
}
$ReflectionFoo = new ReflectionClass('foo');
echo $ReflectionFoo->getMethod('bar')->getNumberOfParameters();
1 голос
/ 07 декабря 2008

Вы ищете возможности отражения в PHP5 - документация здесь .

В частности, посмотрите на классы ReflectionFunction и ReflcetionMethod.

0 голосов
/ 07 декабря 2008

Я полагаю, вы ищете func_num_args ()

http://us3.php.net/manual/en/function.func-num-args.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...