我写了一个foreach循环并保存了几行代码。它基本上接受所有的$_POST变量,并使用它们的名称来创建普通的php变量。
foreach(array_keys($_POST) as $str)
{
${$str}=mysqli_real_escape_string($connection,trim($_POST["$str"]));
}
它按预期工作,动态创建变量。
现在,我想把它放在一个自定义函数中,所以我这样修改它:
function createvariablesfromPOST()
{
foreach(array_keys($_POST) as $str)
{
${$str}=mysqli_real_escape_string($GLOBALS["connection"],trim($_POST["$str"]));
}
return //something;
}
它显然不起作用,因为我不知道如何使这个函数返回//某个东西(无论它是什么)到全局范围。这里该怎么办?
在循环完成之前,我无法使foreach循环返回任何内容。不是吗?
请帮忙。
分配用户提供的任意变量可能极其危险!它们可以覆盖您的任何变量。
它之所以不起作用,是因为它们不在全球范围内。你必须做一些类似$GLOBALS[$variable] = 'something';
的事情
相反,您应该将变量分配给一个数组,以便它们与全局范围隔离。即CCD_ 2;