PHP将变量发布到变量名称,PDO是否可以?
这样做有什么不对吗?我到处都找过了,这似乎不是一件平常的事?有没有我不知道的内置函数可以实现这一点?我使用PDO的输入,所以我认为这是好的 谢谢你的帮助PHP将变量发布到变量名称,PDO是否可以?,php,mysql,pdo,http-post,sql-injection,Php,Mysql,Pdo,Http Post,Sql Injection,这样做有什么不对吗?我到处都找过了,这似乎不是一件平常的事?有没有我不知道的内置函数可以实现这一点?我使用PDO的输入,所以我认为这是好的 谢谢你的帮助 foreach($_POST as $post => $var){ ${$post} = $var; } 警告 这绝对不是你想做的。你 在任何意义上,我们都应该避免对超全局函数做这样的事情。 你最好尽可能地控制好每一个方面,并且 在最佳实践允许的情况下,正确分配变量。i、 e $a = 'derp'; 您正在做的事情被调用
foreach($_POST as $post => $var){
${$post} = $var;
}
警告
这绝对不是你想做的。你
在任何意义上,我们都应该避免对超全局函数做这样的事情。
你最好尽可能地控制好每一个方面,并且
在最佳实践允许的情况下,正确分配变量。i、 e
$a = 'derp';
您正在做的事情被调用并内置到PHP中。它本质上允许您动态创建变量以在当前范围内使用 获取以下内容的
$\u POST
数组:
Array (
[a] => 'derp'
)
现在,使用当前代码,您将动态创建并分配一个变量:
foreach($_POST as $post => $var){
${$post} = $var;
}
反过来,允许您访问所述变量作为键:
echo $a; // would echo out derp
根据个人经验,这并不总是必要的,您可能会遇到的一个问题是覆盖已设置的变量,从而产生不需要的/无法解释的输出
您最好阅读以下答案,以便更广泛地了解您当前的工作:
- (特别值得一读,如果你想驾驭超地球的话)
extract()
。为什么你认为它与PDO有关?不,不要这样做。用户可以用它修改任何变量,包括$GLOBALS、$\u SESSION、$\u SERVER等等。允许用户填充任意变量更像是你被黑客攻击的方式:\u SESSION[user]=admin
@Gumbo我将修改答案,以说明OP通过使用它实际在做什么。