2 回答
TA贡献1848条经验 获得超10个赞
extract() : 从数组中将变量导入当前符号表
$a = ['name' => 'A',
'cuisine' => 'B',
'location' => 'C',
'price' => 12.3
];
extract($a,EXTR_OVERWRITE);// Please see manual to use `flags` accordingly
echo $name.'--'.$cuisine.'--'.$location.'--'.$price;
工作演示:https ://3v4l.org/APqoE
TA贡献1810条经验 获得超4个赞
根据您的问题和示例,我希望我能做到您想要的。您希望用户最近发布的每个表单输入都有一个字符串。
你的例子:
foreach($_POST as $key=>$value){
$_SESSION['post'][$key]=$value;
}
但由此您无法实际识别数组位置中 $key 的实际索引位置。它还可能包含您不需要的所有其他键值,因为您正在捕获所有输入。那么为什么不这样做呢?
if ($_POST['your-form']) {
$array = [
'name' => isset($_POST['name']) ? stripslashes($_POST['name']) : '',
'cuisine' => isset($_POST['cuisine']) ? stripslashes($_POST['cuisine']) : '',
'location' => isset($_POST['location']) ? stripslashes($_POST['location']) : '',
'price' => isset($_POST['price']) ? stripslashes($_POST['price']) : '',
];
// now bind to session.
$_SESSION['temp'] = $array;
}
现在,对于您在回调期间需要的字符串,只需:
list($name, $cuisine, $location, $price) = $_SESSION['temp'];
var_dump($name);
var_dump($cuisine);
var_dump($location);
var_dump($price);
编辑:基于评论。
我们做得到。
function set_value($post_key) {
$val = isset($_POST[$post_key])) ? stripslashes($_POST[$post_key]) : '';
if (!empty($val)) {
$_SESSION['temp'][$post_key] = $val; // store into session.
}
}
function get_value($post_key) {
return isset($_SESSION['temp'][$post_key]) ? $_SESSION['temp'][$post_key] : NULL;
}
因此,使用这两个功能,您可以随时实现。这里有一套。
if (isset($_POST['form_name'])) {
set_value('cuisine'); // will store into session.
}
$cuisine = get_value('cuisine');
- 2 回答
- 0 关注
- 159 浏览
添加回答
举报