PHP:从自定义函数中的foreach返回值

时间:2012-02-07 06:23:28

标签: php foreach

我写了一个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循环返回任何东西,直到循环完成。不是这样吗?

请帮忙。

1 个答案:

答案 0 :(得分:0)

分配用户提供的任意变量可能非常危险!他们可以覆盖你的任何变量。

它不起作用的原因是因为它们不在全球scope中。您必须执行$GLOBALS[$variable] = 'something';

之类的操作

相反,您应该将变量分配给数组,以便它们与全局范围隔离。即$input[$$var] = $escaped_value;