次のように複数のセッションを実行したいです。
if(isset($_SESSION['word'])){$word = $_SESSION['word'];}
if(isset($_SESSION['meaning'])){$meaning = $_SESSION['meaning'];}
if(isset($_SESSION['idiom'])){$idiom = $_SESSION['idiom'];}
セッションの項目が増えたり減ったりするので、
項目が増減したら、それにあわせてセッションする数も手間なく増減できるよう、
下記のようにしたのですがうまくいきません。
$itemsS = array('word','meaning','idiom');
$i = count($itemsS);
for($m=0;$m<$i;$m++)
{
if(isset($_SESSION["$itemsS[$m]"])){$$itemsS[$m] = $_SESSION["$itemsS[$m]"];
}
配列の要素を増減したら、それにあわせてセッションする数も自動的に増減することは可能でしょうか?
できるとしたらどのようにしたらよいでしょうか?基本的な質問で恐縮ですがよろしくご回答ください。
環境は最新のVista Home Premium、最新のXamppのPHP5、プラウザはIE,Firefoxです。
以上、よろしくお願いします。
ご質問のスクリプトを訂正すると、下記のようになります。
$i = count($itemsS); for ($m = 0; $m < $i; $m++) { if (isset($_SESSION[$itemsS[$m]])) { $$itemsS[$m] = $_SESSION[$itemsS[$m]]; } }
また、foreach を使って書くと2行で済みます。
foreach ($itemS as $var)
if (isset($_SESSION[$var]) $$var = $_SESSION[$var];
$itemsS = array('word','meaning','idiom'); foreach($itemsS as $key => $value){ if(isset($_SESSION[$value])){ $$value = $_SESSION[$value]; } } このような感じでしょうか!
ご回答ありがとうございます。
うまく行きました。
ご質問のスクリプトを訂正すると、下記のようになります。
$i = count($itemsS); for ($m = 0; $m < $i; $m++) { if (isset($_SESSION[$itemsS[$m]])) { $$itemsS[$m] = $_SESSION[$itemsS[$m]]; } }
また、foreach を使って書くと2行で済みます。
foreach ($itemS as $var)
if (isset($_SESSION[$var]) $$var = $_SESSION[$var];
ご回答ありがとうございます。
forを使った方はうまくいったのですが、どういうわけかforeachを使った方は私の環境だとうまくいきませんでした。
理由はわかりませんがそのままコピペすると「Parse error: syntax error, unexpected '$'」というエラーが出ます。
とはいえ上段のスクリプトではうまくいきました。
ご回答ありがとうございます。
forを使った方はうまくいったのですが、どういうわけかforeachを使った方は私の環境だとうまくいきませんでした。
理由はわかりませんがそのままコピペすると「Parse error: syntax error, unexpected '$'」というエラーが出ます。
とはいえ上段のスクリプトではうまくいきました。