Php 在函数中更改函数参数

Php 在函数中更改函数参数,php,Php,HTML表单将空值作为空字符串发送。我希望它们为空: function dummy($arg1, $arg2, ... $argN) { if(!$arg1) $arg1 = null; if(!$arg2) $arg2 = null; ... if(!$argN) $argN = null } 这很难看。我想要像这样的东西: function dummy($arg1, $arg2, ... $argN) { nullEmptyArguments();

HTML表单将空值作为空字符串发送。我希望它们为空:

function dummy($arg1, $arg2, ... $argN)
{
   if(!$arg1) $arg1 = null;
   if(!$arg2) $arg2 = null;
   ... 
   if(!$argN) $argN = null

}
这很难看。我想要像这样的东西:

function dummy($arg1, $arg2, ... $argN)
{
   nullEmptyArguments();
   var_dump($arg1); //null
}
使用函数获取所有已定义的变量,并循环它们并重新设置它们:

function dummy($arg1, $arg2, $argN)
{
    foreach (get_defined_vars() as $k => $v) $$k = $v ?: null;
    // your logic
}

dummy(1, '0', ''); # $arg2 & $argN will be set to NULL

为什么要将参数设置为null?如果它们的计算结果为false时才设置为null,那么只需检查条件(!$arg1)就相当于检查、设置为null,然后再检查null。这不是您通常需要解决的问题。听起来您应该以不同的方式在函数中构造代码。做你正在做的事情真的没什么意义。从$$来看这是一个很好的观点,因为使用$v不起作用。但是&$?@BubuDaba:我不明白有什么不适合
$v
?你所说的
和$
是什么意思?你想通过引用传递什么?哦,我的意思是如果
dummy($a,$b,$c)
,要更改变量,如果你想使用
函数dummy(&$arg1,&$arg2,&$argN)
,那么你的输入必须是如图所示的变量,而不是我的答案中的值,因为您将得到
致命错误:只有变量可以通过引用传递。