Php 我在foreach循环中设置了变量,它们在循环外没有回声

Php 我在foreach循环中设置了变量,它们在循环外没有回声,php,arrays,foreach,Php,Arrays,Foreach,我正在设置一个$key=>$value的数组。我使用它来设置表单提交的报告。我试图在foreach循环内设置一个php变量,并在循环外使用它;然而,它不起作用。你知道为什么吗 $formfields = array( "Company Name" => "company", "Contact Name" => "name", "Address" => "address", "City" => "city", "State" => "state", "Zip Code

我正在设置一个$key=>$value的数组。我使用它来设置表单提交的报告。我试图在foreach循环内设置一个php变量,并在循环外使用它;然而,它不起作用。你知道为什么吗

$formfields = array(
"Company Name" => "company",
"Contact Name" => "name",
"Address" => "address",
"City" => "city",
"State" => "state",
"Zip Code" => "zip",
"Phone Number" => "phone",
"Brand of Tool" => "brand",
"Tool Model" => "model",
"Description of Problem" => "description",
"Repair or Rebuild" => "repairorrebuild",
"Estimate or Repair & Return" => "estimateorrepair"
);



foreach ($formfields as $key => $value) { 
'$'. $value = htmlspecialchars($_POST[$value]); 
}

echo $company .' '. $name;

我已经通过在foreach循环中回显值进行了测试,它们确实从表单返回了值。所以我知道没有输入错误。

要生成动态变量,应该使用
{}

foreach ($formfields as $key => $value) { 
  ${$value} = htmlspecialchars($_POST[$value]); 
}

$$值与“$”不同。$值。第一个是变量名$value,第二个是连接到$value的字符串$value。这里只是一个简短的说明,也许您可以格式化/缩进最后一段代码,让问题更清楚。将文本稍微展开:)我重新格式化了代码。对不起,太好了!非常感谢你。这是一个使用foreach循环的学习实验。但这将允许我现在根据需要在我的应用程序中使用它。我一上车就接受。