如何判断PHP方法/函数中的可选参数是否设置?

假设我有一个具有以下签名的方法/函数:

foo($bar = 0)

在foo中,如何判断$bar是否设置? isset将永远返回TRUE,因为$bar被赋值为0,如果没有传递给foo.

检查0不是一个选项.我需要知道参数显式设置为0或默认为0之间的差异.

只需使用
func_num_args()来专门检查传入的参数数量.

<?php
function foo($bar = 0)
{
    echo "\nNumber of arguments: " . func_num_args();
}

  // Outputs "Number of arguments: 1"
foo(0);

  // Outputs "Number of arguments: 0"
foo();
?>

Live example

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。