PHP 函数中引用参数的默认值

唠叨

有没有可靠的方法可以知道是否传递了函数引用参数?

我在 Stack Overflow 中看到了建议给它一个默认值并检查该值的答案,但我已经对其进行了测试,它不是 100% 可靠的,因为您无法检查参数是否尚未设置或是否它已被设置为一个与默认值相同的变量。

function fn (&$ref = null) {
    if ($ref === null)
        echo "ref null";
    else
        echo "ref not null";
}
$var = null;
fn($var); // ref null

function fn2 (&$ref = -1) {
    if ($ref === -1)
        echo "ref === -1";
    else
        echo "ref !== -1";
}
$var = -1;
fn2($var); // ref === -1

我正在运行 PHP 7.2

Nigel Ren

您可以使用以下命令检查传递给函数的参数数量 func_num_args()

function fn (&$ref = null) {
    echo func_num_args().PHP_EOL;
    if ($ref === null)
        echo "ref null".PHP_EOL;
    else
        echo "ref not null".PHP_EOL;
}
$var = null;
fn($var);
fn();

会给

1
ref null
0
ref null

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章