2017-09-15 17 views
0

私は動的な$_SESSION変数を作成して、簡単なforループで日付を出力します。

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; 

とき私、これは私がこの仕事を行うことができますどのように

string(10) 
string(9) 
string(9) 
string(9) 

を得るものですvar_dump($_SESSION[$ttt])

+0

コードには奇妙なことがありますが、ループ内でキーを作成することに注意してください。 echoがループ内に '$ ttt = 'tuesday _'。でなくてはなりません。$ v;'?また、$ _SESSION [$ ttt] 'として' $ newdateformat'をエコーすることはすでにその値です(私はそれについて90%確信しています)。 –

+0

@Mr_KoKa: \t 私はこれを '$ v = 1; $ v <= 4; $ v ++){ $ ttt = 'tuesday _' $ v; echo $ _SESSION [$ ttt] = $ newdateformat; } ' forループループは、それぞれの日付に対して4回、目的の効果ではありません。 –

+0

これでループを '$ ttt = 'tuesday_4';'に置き換えることができます(あるいはコードが完全ではありません)。私の答えで書いた最初のことをまだ見ておく必要があります。 –

答えて

0

私は二つのことを気づいた:

$t = 'value_before'; 

echo $t = 'value_after'; 

上記のコードは以下に等しい。

1. たちは'value_before'$tセットを持っているとしましょう

$t = 'value_after'; 
echo $t; 

その結果、 'value_after'がエコーされ、古い値( 'value_before')をエコーし​​ません。

2.私は気づいた他の事は、あなたがループの中で、あなたの変数を何度も準備していることで、その後、あなたは一度だけ、それをエコー、これはあなたのコードの一部:

for ($v=1;$v<=4;$v++){ 
    $ttt = 'tuesday_'.$v; 
} 

echo $_SESSION[$ttt] = $newdateformat; 

だから、唯一のこと、あなたエコーは'$_SESSION['tuesday_4'] = $newdateformat'であり、アノードはtuesday_1,tuesday_2tuesday_3はエコー/変更されません。