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

发布于 2025-01-03 08:01:58 字数 615 浏览 1 评论 0原文

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

请帮忙。

I wrote a foreach loop and saved on several lines of code. It basically takes all of the $_POST variables and uses their names to create normal php variables.

foreach(array_keys($_POST) as $str)
{
${$str}=mysqli_real_escape_string($connection,trim($_POST["$str"]));
}

It is working as expected, creating variables dynamically.

Now, I wanted to put it inside a custom function so i modified it like this:

function createvariablesfromPOST()
{
    foreach(array_keys($_POST) as $str)
    {
    ${$str}=mysqli_real_escape_string($GLOBALS["connection"],trim($_POST["$str"]));
    }
    return //something;
}

Its not working obviously, because i dont know how to make this function return // something (whatever that thing may be) to the global scope. Whats supposed to be done here?

I cant make the foreach loop return anything, till the loop is complete. Isn't that so?

Please help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

成熟稳重的好男人 2025-01-10 08:01:58

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

它不起作用的原因是因为它们不在全局 范围< /a>.您必须执行类似 $GLOBALS[$variable] = 'something';

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

Assigning arbitrary variables supplied by the user could be EXTREMELY DANGEROUS! They can overwrite any of your variables.

The reason it isn't working, is because they aren't in the global scope. You would have to do something like $GLOBALS[$variable] = 'something';

Instead, you should assign the variables to an array so they are isolated from the global scope. i.e. $input[$$var] = $escaped_value;

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文