PHP Post vars to var name with PDO?

时间:2015-11-11 01:23:41

标签: php mysql pdo http-post sql-injection

这样做有什么不对吗?我到处看,看起来这不是一件普通的事吗?是否有内置功能我不知道这是做到这一点?我使用PDO进行输入,所以我假设这很好。

感谢您的帮助!!

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

1 个答案:

答案 0 :(得分:2)

警告

  

作为@Gumbo stated,这绝不是你想要做的。您   在任何意义上都应避免使用超级全局变量做这样的事情。   你最好尽可能地控制每个方面   正如最佳实践所允许的那样,正确地分配变量。即。

$a = 'derp';

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

获取以下$_POST数组:

Array (
    [a] => 'derp'
)

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

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

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

echo $a; // would echo out derp

从个人经验来看,这并不总是必要的,您可能遇到的一个问题是覆盖已经设置的变量,反过来会产生不需要的/无法解释的输出。

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