[英]Default value for reference argument in PHP function
有什么可靠的方法可以知道 function 参考参数是否已通过?
我在 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
您可以使用func_num_args()
检查传入 function 的 arguments 的数量
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.