【发布时间】:2017-09-15 21:55:18
【问题描述】:
我正在使用简单的 for 循环创建动态 $_SESSION 变量以打印日期。
if($dateweekday ==='Tuesday'){
for ($v=1;$v<=4;$v++){
$ttt = 'tuesday_'.$v;
}
echo $_SESSION[$ttt] = $newdateformat ;
echo "<br>";
}
结果
2017-9-19
2017-9-26
2017-10-03
2017-10-10
看起来不错。但是我担心的是$_SESSION[$ttt] 的值。结果应该是
$_SESSION['tuesday_1'] = 2017-9-19;
$_SESSION['tuesday_2'] = 2017-9-26;
$_SESSION['tuesday_3'] = 2017-10-03;
$_SESSION['tuesday_4'] = 2017-10-10;
当我var_dump($_SESSION[$ttt]) 这就是我得到的结果
string(10)
string(9)
string(9)
string(9)
我怎样才能做到这一点?
【问题讨论】:
-
代码有些奇怪,请注意您在循环内创建密钥,但在循环完成后仅在循环外回显会话变量一次。回声不应该在
$ttt = 'tuesday_'.$v;的循环内吗?另外,您回显$newdateformat,因为$_SESSION[$ttt]已经具有其价值(我有90% 的把握)。 -
@Mr_KoKa:我知道,但是当我这样做
for($v=1;$v<=4;$v++){ $ttt = 'tuesday_'.$v; echo $_SESSION[$ttt] = $newdateformat; }时,forloop 在每个日期循环 4 次,这不是预期的效果。 -
好的,所以你可以用
$ttt = 'tuesday_4';替换你的循环(或者代码不完整)。您仍然需要看一下我在回答中写的第一件事。