【发布时间】:2021-01-23 18:01:45
【问题描述】:
我有一个来自数据库的字符串,例如session_user_id,表示我应该从 PHP 中的会话变量中获取 user_id。理想情况下,这应该转换为存在值的$_SESSION['user']['id']。以下似乎不起作用。
echo fillDefaultValues("session_user_id");
function fillDefaultValues($val)
{
$expval = explode("_", $val);
$j = "";
if ($expval[0] == 'session') {
for ($i=1; $i < count($expval); $i++) {
$j .= "[".$expval[$i]."]";
}
$sessVal = $_SESSION[$j];
}
return $sessVal;
};
我尝试了$sessVal = $_SESSION.$j、$sessVal = ${$_SESSION.$j}、$sessVal = $_SESSION[$j] 等变体,但似乎都没有。
【问题讨论】:
-
您的代码正在寻找不存在的
$_SESSION['[user][id]']。 -
从
$sessVal = $_SESSION开始,然后$sessVal = $sessVal[$expval[$i]];并重复。 -
做
$_SESSION['user']['id']做的事情,不要尝试生成PHP代码。阅读有关使用 square bracket syntax 访问数组项的信息。 -
@axiac 我的问题是当我不知道数字级别时如何构建它?
标签: php