有没有办法访问PHP变量的名称并使用它来获取同名的POST变量?

时间:2014-12-04 21:13:31

标签: php post

我知道这不是最好的做法,但出于好奇,有没有办法循环遍历几个PHP变量并将它们分配给同名的POST变量?

例如,如果我需要做类似

的事情
$var1 = $_POST["var1"]

我可以遍历所有变量并执行

foreach($values_array as &$value) {
    if isset($_POST[valueName($value)]) {
        $value = $_POST[valueName($value)];
    } else {
        $value = "";
    }
}

最后,我只是不确定检查和分配大量POST值的最佳方法(我现在正在看50多个......)。非常感谢指示纠正方式。

1 个答案:

答案 0 :(得分:0)

You can use extract()采用更简单,更安全的方法:

extract($_POST, EXTR_SKIP); // "Safest" way

您可以使用EXTR_IF_EXISTS标志仅覆盖现有变量,或者可以使用EXTR_SKIP来防止写入已存在的任何变量(为了最好的安全性)。您也可以使用前缀变量:

extract($_POST, EXTR_PREFIX_ALL, 'post');

然后通过$_POST['variable']可以使用$postvariable - 但要小心 - 例如,您必须确保所有PHP变量都不以“post”开头

通常的做法是将$_POST变量保留在原来的位置并直接访问它们,直到您开始操作,验证和清理它们为止。