0

我有一些通过网络表单提交的帖子字段:

$_POST['first_name'];
$_POST['last_name'];
$_POST['house_number'];
$_POST['postcode'];

ETC

我想为每一个添加以下代码结构:

if (isset($_POST['first_name'])) {
    $first_name = mysql_prep($_POST['first_name']);
}

我如何使用循环来实现这一点,以避免重复自己多次?

谢谢

4

4 回答 4

8

您可以使用 PHP 的extract()函数为您执行此操作。

extract($_POST);
// you now have a variable for every key in $_POST

如果您只想要某个键列表,而不是完整数组,您还可以使用variable-variables(带有两个前导的变量$,例如$$var):

$keysToExtract = array('first_name', 'last_name');
foreach ($keysToExtract as $key) {
    $$key = $_POST[$key];
}
// you now have $first_name and $last_name
于 2012-10-05T13:34:18.607 回答
2

使用array_map() PHP 函数对所有数组元素应用一些操作。

之后,extract($_POST)如果您想接收名称如$_POST数组键的变量。

于 2012-10-05T13:35:10.790 回答
2

尝试使用 foreach:

foreach( $_POST as $key => $value ) {
    $$key = mysql_prep( $value );
}
于 2012-10-05T13:35:57.420 回答
1

怎么样

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

$$ 正在设置一个变量变量

于 2012-10-05T13:37:19.913 回答