如何提取$ _POST变量的名称,而不是其值_

时间:2010-01-01 01:31:41

标签: php

我正在构建一个验证表单中值的函数。 如何从$ _POST变量中以字符串形式提取实际名称? 例如:$ _POST ['first_name'] ='乔';

我现在想要获取字符串'first_name'并在函数中使用它来声明该名称的变量。我知道我可以使用foreach循环,但是没有更容易的方法吗?

6 个答案:

答案 0 :(得分:6)

怎么样

extract($_POST);

答案 1 :(得分:5)

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

答案 2 :(得分:2)

我不确定这是否是您想要的,但您可以像这样使用变量

$fieldname = "first_name";

$fieldvalue = $_POST[$fieldname];

$$fieldname = $fieldvalue;   // Creates a variable named "first_name"

echo $first_name;  // Outputs the POST variable

答案 3 :(得分:2)

据我了解,您正在寻找array_keys($_POST)

答案 4 :(得分:1)

我不会用这个:

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

...它会打开您的代码,以防有人通过表单恶意在您的程序中设置变量。 (即,有效地设置globals_register)

但要回答你的核心问题:你对已发布变量的唯一了解是$ _POST数组中的内容;找出变量名称的唯一方法是循环遍历数组键。

答案 5 :(得分:0)

如果你想根据键名执行功能,你最好的镜头是这样的:

foreach ($_POST AS $key => $value)
{
    call_user_func("example_func_$key", $value);
}

请注意在$key的第一个参数的双引号内使用call_user_func。这将允许您执行“动态”命名函数。