PHP Post vars 到 var names 可以用 PDO 吗?

PHP Post vars to var names ok with PDO?

这样做有什么问题吗?我到处看了看,这似乎不是很常见的事情?有没有我不知道的内置函数?我使用 PDO 作为输入,所以我认为这没问题。

感谢您的帮助!!

foreach($_POST as $post => $var){
    ${$post} =  $var;
}

警告

As , this is, in no way, what you want to do. You should avoid doing anything like this with super globals in any sense. You're better off controlling each aspect as best as possible and assigning the variables properly, as best practice permits. i.e.

$a = 'derp';

您正在做的事情称为 Variable Variable 并且内置于 PHP 中。它本质上允许您动态创建在当前范围内使用的变量。

获取以下内容的 $_POST 数组:

Array (
    [a] => 'derp'
)

现在使用您当前的代码,您将动态创建和分配一个变量:

foreach($_POST as $post => $var){
    ${$post} =  $var;
}

反过来,允许您访问所述变量作为键:

echo $a; // would echo out derp

根据个人经验,这并不总是必要的,您可能 运行 遇到的一个问题是覆盖已经设置的变量,进而产生 unwanted/unexplained 输出。


您最好阅读这些答案,以便更广泛地了解您目前正在做的事情:

  • Dynamic variable names in PHP
  • PHP Variables - Concatenate variable name
  • php variable variables problem(如果试图利用超全局变量,尤其值得一读)