将php函数应用于所有函数参数
将php函数(如trim())应用于传递给函数的所有参数的好方法是什么,同时保持这些参数的说服力以供进一步处理?假设我们要修剪传递给邮件函数的所有参数:将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
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()来解决是的,但是我们的原始参数保持不变。我们可以“列出”重新组合原始的经过修剪的参数,但是潜在的空值仍然没有定义并抛出错误…是的,但是原始参数仍然没有修剪。我们可以“列出”来重新组合原始的、现在经过修剪的参数,但是潜在的空值仍然没有定义,并抛出一个错误……我的解决方案优雅地处理空值!我的解决方案,因为它处理空优雅!