可能这是
PHP的限制,但是有可能以某种方式调用函数 – 并强制执行可选参数的’default’值 – 即使在函数调用中,给出了可选参数(和== null)?
也许更容易表明我的意思:
function funcWithOptParam($param1, $param2 = 'optional') {
print_r('param2: ' . $param2);
}
funcWithOptParam('something'); // this is the behaviour I want to reproduce
// this will result in 'param2: optional'
funcWithOptParam('something', null); // i want $param2 to be 'optional', not null
// this will result in 'param2: ' instead of 'param2: optional'
?>
现在,最简单的答案是“不要写null然后” – 但在我的特殊情况下,我得到一个函数调用的参数数组,并且只能这样做:
funcWithOptParam($param[0], $param[1]);
?>
因此,即使$param [1]为null,null也将覆盖可选参数的默认值
我只看到一个解决方案 – 跳过可选参数,并按以下方式执行:
function funcWithOptParam($something, $notOptional) {
if($notOptional === null) {
$notOptional = 'defaultvalue';
}
...
}
?>
但我想知道是否有另一种解决方案. PHP中是否存在“真正的”空值?这真的转化为“什么都没有”?像js中未定义的东西?