可能这是
PHP的限制,但是有可能以某种方式调用函数 – 并强制执行可选参数的’default’值 – 即使在函数调用中,给出了可选参数(和== null)?
原文链接:https://www.f2er.com/php/444942.html也许更容易表明我的意思:
<?PHP 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然后” – 但在我的特殊情况下,我得到一个函数调用的参数数组,并且只能这样做:
<?PHP funcWithOptParam($param[0],$param[1]); ?>
因此,即使$param [1]为null,null也将覆盖可选参数的默认值
我只看到一个解决方案 – 跳过可选参数,并按以下方式执行:
<?PHP function funcWithOptParam($something,$notOptional) { if($notOptional === null) { $notOptional = 'defaultvalue'; } ... } ?>