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


Is there a way to access a PHP variable's name and use it to get a POST variable of the same name?

我知道这不是最佳实践,但出于好奇,有没有办法循环访问多个 PHP 变量并将它们分配给同名的 POST 变量?

例如,如果我需要做类似的事情

$var1 = $_POST["var1"]

我也许能够遍历我所有的变量并做

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

最后,我只是不确定检查和分配大量 POST 值的最佳方法是什么(我现在正在查看 50 多个......指向正确方式的指针也将不胜感激。

您可以使用

extract()来实现更简单、更安全的方法:

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

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

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

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

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