获取 PHP 中形式参数的数量

Get number of formal parameters in PHP

我知道你可以用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

我想要一种在对 optional 的每个调用中获取 2 的方法,而无需对其进行硬编码。

一种方法是 ReflectionFunction,例如:

function optional($a, $b = null) {
    return (new ReflectionFunction(__FUNCTION__))->getNumberOfParameters();
}