我刚刚编写了以下代码:
<?php
$email = checkPost("email");
$username = checkPost("username");
$firstname = checkPost("firstname");
$lastname = checkPost("lastname");
$zipcode = checkPost("zipcode");
echo("EMAIL: ".$email." USERENAME: ".$username);
function checkPost($formData) {
if (isset($_POST[$formData])) {
return $_POST[$formData];
}
}
?>
我想要做的就是消除顶部对checkPost()的所有调用。下面的代码不需要知道提交给它的表单中的字段,它只是循环遍历所有字段并吐出它们的值。
<?php
// loop through every form field
while( list( $field, $value ) = each( $_POST )) {
// display values
if( is_array( $value )) {
// if checkbox (or other multiple value fields)
while( list( $arrayField, $arrayValue ) = each( $value ) {
echo "<p>" . $arrayValue . "</p>\n";
}
} else {
echo "<p>" . $value . "</p>\n";
}
}
?>
我想修改此代码,以便创建像$ email等变量,并动态分配值。比如说你在具有“email”和“name”的表单上运行它。你不必给php一个变量名$ email或$ name。它将循环执行并为“email”创建并填充名为$ email的变量,依此类推。
我在做梦吗?
答案 0 :(得分:1)
foreach ($_POST as $key=>$value) {
echo '<p>', htmlspecialchars($key), ' = ', htmlspecialchars($value), '</p>';
}
我认为这就是你要找的东西。基本上,我们只是循环遍历所有$_POST
元素并显示它们。你当然可以在循环中随心所欲地做任何事情。
答案 1 :(得分:1)
你可以使用......
extract($_POST, EXTR_SKIP);
...但我不推荐。这会将数组的密钥解压缩到它所在的范围内。我已将其设置为 not 覆盖现有变量。
您应该明确定义变量。