循环POST字段并设置为变量PHP

use*_*056 0 php mysql loops

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

$_POST['first_name'];
$_POST['last_name'];
$_POST['house_number'];
$_POST['postcode'];
Run Code Online (Sandbox Code Playgroud)

等等

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

if (isset($_POST['first_name'])) {
    $first_name = mysql_prep($_POST['first_name']);
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能使用循环来实现这一点,以避免多次重复自己?

谢谢

new*_*rey 8

您可以使用PHP的extract()功能为您执行此操作.

extract($_POST);
// you now have a variable for every key in $_POST
Run Code Online (Sandbox Code Playgroud)

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

$keysToExtract = array('first_name', 'last_name');
foreach ($keysToExtract as $key) {
    $$key = $_POST[$key];
}
// you now have $first_name and $last_name
Run Code Online (Sandbox Code Playgroud)