我想将函数应用于每个PHP POST或GET变量:
$_GET["some_variable"] -> some_function($_GET["some_variable"])
$_POST["some_variable"] -> some_function($_POST["some_variable"])
有关正则表达式匹配和替换我的文件中出现的任何建议吗?
答案 0 :(得分:2)
您可以使用array_map
function在数组的每个元素上调用函数:
$modifiedGet = array_map(some_function, $_GET);
$modifiedPost = array_map(some_function, $_POST);
答案 1 :(得分:0)
这是一个坏主意。考虑一些代码,如
<?php
$_POST['override'] = 'some override value';
除非您想教授替换函数PHP语法规则,否则最终会使用
<?php
some_function($_POST['override']) = 'some override value';
这是语法错误:Can't use function return value in write context
。
答案 2 :(得分:-1)
如果您要在评论中说明原因,那么我可以修正错误(如果有的话)。据我所知,这是一种比接受的答案更好的调用方法,因为它是递归的并且可以在子数组上工作。如果不是,我想知道原因。
您可以使用array_walk_recursive为数组中的每个值调用一个函数:
function walk_function(&$value) {
$value = some_function($value);
}
array_walk_recursive($_GET, 'walk_function');
array_walk_recursive($_POST, 'walk_function');
http://php.net/manual/en/function.array-walk-recursive.php
这比array_map
更有优势,因为它是递归的,并且将为数组中的数组调用函数。例如,如果您提交复选框或多选,则会有子阵列可能需要对它们执行相同的处理。