这是我的第一篇文章,对于任何我可能不知道的错误,我深感抱歉。
在过去的几天里,我一直在摆弄表格和POST,在某些情况下我有一个很好奇的问题。
我的基本网络表单中有此代码。我声明了一些变量,如下所示。
<?php
if (isset($_POST['submit'])) {
// Form submitted
$username = isset($_POST['username'])? $_POST['username'] : "";
$password = isset($_POST['password'])? $_POST['password'] : "";
$email = isset($_POST['email']) ? $_POST['email'] : "";
$country = isset($_POST['country']) ? $_POST['country'] : "";
}
?>
我想创建一个form_data
以这些变量为元素的数组,因此我插入了以下内容:
<?php
$form_data = array();
$form_data['username'] = $username;
$form_data['password'] = $password;
$form_data['email'] = $email;
$form_data['country'] = $country;
print_r($form_data);
?>
我的问题是,在哪里可以得到相同的结果,PHP中是否有我不知道的方法?变量名将被分配为数组中的键,我不希望像上面的那一部分代码那样手动键入键名。
简而言之,如果我有一个名为的变量$number
,我想将其值添加到以'number'(变量名)作为键的数组中。有没有一种方法可以自动执行此操作?
我希望我已经把这个问题弄清楚了。
您可以使用compact
:
$form_data = compact('username', 'password', 'email', 'country');
只要有变量,$username, $password, $email, and $country
它就会创建您描述的数组。
compact()在当前符号表中查找具有该名称的变量,并将其添加到输出数组,以使变量名称成为键,而变量的内容变为该键的值。
或者,您可以执行白名单方法:
function array_whitelist($array, $whitelist = array()) {
return array_merge(array_flip($whitelist),
array_intersect_key($array, array_flip($whitelist)));
}
$form_data = array_whitelist($_POST, array('username', 'password', 'email', 'country'));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句