Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将php函数应用于所有函数参数_Php_Function_Arguments - Fatal编程技术网

将php函数应用于所有函数参数

将php函数应用于所有函数参数,php,function,arguments,Php,Function,Arguments,将php函数(如trim())应用于传递给函数的所有参数的好方法是什么,同时保持这些参数的说服力以供进一步处理?假设我们要修剪传递给邮件函数的所有参数: function my_function($a, $b, $c = NULL, $d, $e = NULL, $f = NULL){ $a = trim($a); $b = trim($b); $c = trim($c); $d = trim($d); $e = trim($e); $f = tr

将php函数(如trim())应用于传递给函数的所有参数的好方法是什么,同时保持这些参数的说服力以供进一步处理?假设我们要修剪传递给邮件函数的所有参数:

function my_function($a, $b, $c = NULL, $d, $e = NULL, $f = NULL){
    $a = trim($a);
    $b = trim($b);
    $c = trim($c);
    $d = trim($d);
    $e = trim($e);
    $f = trim($f);

// !!! i'd like something other than n lines of trim()...

// do further functioning on original *now trimmed* arguments...

my_function($to,$subject,$body,$from,$cc,$bcc);
func_get_args()和其他数组类型函数并不理想,因为我们的修剪参数无法用于最初定义的进一步操作。我们是否需要使用某种数组,然后在后面重新组合原始参数?

func\u get\u args()和array\u walk()可能

func_get_args()和array_walk()是否可能


下面应该可以做到这一点:

$args = array_map('trim', func_get_args());
编辑

可以做得更好(借用马克·贝克)


下面应该可以做到这一点:

$args = array_map('trim', func_get_args());
编辑

可以做得更好(借用马克·贝克)


一个好方法是在代码中简单地执行它。这个“问题”的任何解决方案都是愚蠢的,因为最终你必须为所有参数调用
trim
。一种愚蠢但简单的做法是:

function my_function($a, $b, $c = NULL, $d, $e = NULL, $f = NULL){
    foreach (range('a', 'f') as $v) {
        $$v = trim($$v);
    }
    // ...
}

一个好方法是在代码中简单地执行它。这个“问题”的任何解决方案都是愚蠢的,因为最终你必须为所有参数调用
trim
。一种愚蠢但简单的做法是:

function my_function($a, $b, $c = NULL, $d, $e = NULL, $f = NULL){
    foreach (range('a', 'f') as $v) {
        $$v = trim($$v);
    }
    // ...
}

可以使用get_defined_vars()来解决,也可以使用get_defined_vars()来解决是的,但是我们的原始参数保持不变。我们可以“列出”重新组合原始的经过修剪的参数,但是潜在的空值仍然没有定义并抛出错误…是的,但是原始参数仍然没有修剪。我们可以“列出”来重新组合原始的、现在经过修剪的参数,但是潜在的空值仍然没有定义,并抛出一个错误……我的解决方案优雅地处理空值!我的解决方案,因为它处理空优雅!