Я знаю, что вы можете использовать func_num_args
чтобы получить количество фактических аргументов, переданных. Есть ли способ получить количество формальных параметров?
Пример:
<?php
function optional($a, $b = null) {
echo func_num_args();
}
optional(1); // 1
optional(1, 1); // 2
optional(1, 1, 1); // 3
Я хочу способ получить 2
в каждом из этих звонков optional
без жесткого кодирования это.
Один путь с ReflectionFunction
, например.:
function optional($a, $b = null) {
return (new ReflectionFunction(__FUNCTION__))->getNumberOfParameters();
}
Других решений пока нет …