我试图传递存储在SESSION独立变量中的所有变量,如下所示:
<?php
session_start();
ini_set('display_errors', 'off');
ini_set('display_startup_errors', 'off');
$vars = array('id','name','mail1','mail2','phone1','phone2','address','genere',
'departament','tittle' );
foreach ($vars as $v) {
if (isset($_SESSION[$v])) {
$$vars[v]= $_SESSION[$v];
echo $$vars[v].'<br />';
}
}
echo $name;
echo </ br>;
echo $mail1;
?>
但是当我尝试打印变量的内容时,显然是空的。我做错了什么?
答案 0 :(得分:2)
你的代码有错误只改变了isset函数之后的行:
<?php
$$v = $_SESSION[$v];
?>
答案 1 :(得分:1)
试试这个:
extract($_SESSION)
echo $id;
echo $name;
// so on ...
请检查文档中的警告说明
OR
foreach ($vars as $v) {
if (isset($_SESSION[$v])) {
$$v= $_SESSION[$v];
echo $$v.'<br />';
}
}
答案 2 :(得分:0)
而不是单独存储变量,而应将它们存储在数组中。这样你就可以访问你需要的唯一变量。
如下所示:
$_SESSION['details'] = array();
$_SESSION['details']['name'] = 'xxx';
$_SESSION['details']['id'] = 'xxx';
$_SESSION['details']['mail1'] = 'xxx';
$_SESSION['details']['mail2'] = 'xxx';
$_SESSION['details']['phone1'] = 'xxx';
现在要单独访问它们,您只需执行此操作即可。
extract($_SESSION['details']);
echo $name;
echo $id;