我正在构建一个验证表单中值的函数。 如何从$ _POST变量中以字符串形式提取实际名称? 例如:$ _POST ['first_name'] ='乔';
我现在想要获取字符串'first_name'并在函数中使用它来声明该名称的变量。我知道我可以使用foreach循环,但是没有更容易的方法吗?
答案 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
。这将允许您执行“动态”命名函数。