php将post数据更改为变量

php将post数据更改为变量,php,arrays,post,foreach,global,Php,Arrays,Post,Foreach,Global,我正在尝试将给定的$\u POST数据更改为可变格式,以下是我的代码: <?php $_POST["abc"]=2; $post = array("abc"); foreach($post as $field) { global $field; $field = $_POST[$field]; } echo $abc; ?> 但当我试图运行此代码时,我只得到: PHP注意:未定义变量:abc in/var/www/on第8行 如何将循环中选择的POST变量更

我正在尝试将给定的$\u POST数据更改为可变格式,以下是我的代码:

<?php
$_POST["abc"]=2;
$post = array("abc");

foreach($post as $field) {
    global $field;
    $field = $_POST[$field];
}

echo $abc;
?>

但当我试图运行此代码时,我只得到:

PHP注意:未定义变量:abc in/var/www/on第8行

如何将循环中选择的POST变量更改为普通变量?(例如$\u POST[“abc”]到$abc)

您可以尝试使用


使用该功能


如果希望将$\u POST键作为直接变量转换,可以使用以下脚本

<?php

$_POST["abc"]=2;
$_POST["xyz"]=5;

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

echo $abc . "<br/>";  //2
echo $xyz;  //5

?>

此处“$$”用于从另一个字符串输出以动态方式创建变量

此处提供的工作示例:

我的方法是:

 $abc = $_POST['abc'];

因此,对于我需要的来自$\u POST的每个变量,如果不清理$\u POST,您的方法将使您容易受到代码注入的影响。 随着时间的推移,我最终只使用了$_POST['var']而不是额外的变量,当然这取决于项目。
我希望我的回答有帮助。GL.

不是100%确定您在做什么,但认为您想要使用variabel变量:这是非常不安全的,因为它正在将任何已发布的变量转换为局部变量。您可以添加选项EXTR_SKIP,但您必须记住,任何人都可以在代码中插入他们想要的变量。我不会向任何安全重要的脚本推荐这一点,这是真实的,但却是OPs问题固有的。
<?php

$_POST["abc"]=2;
$_POST["xyz"]=5;

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

echo $abc . "<br/>";  //2
echo $xyz;  //5

?>
 $abc = $_POST['abc'];
 list($abc,$def,$etc) = array($_POST['abc'],$_POST['abc'],$_POST['def'],$_POST['etc']);
  $postNeeded = array("abc","def","etc");
  foreach($postNeeded as $variable){ 
         if(isset($_POST[$variable])){
             ${$variable} = $_POST[$variable]; 
  }}