• ベストアンサー

$_SESSIONの中身の取り出し方

$_SESSIONの中身の取り出し方 $_SESSIONの中身の取り出し方について質問させてください。 $_SESSION["~~~"]でいくつか設定している状態なのですが、 テストとして現在どういったものが入っているかを確認したいのですが、 できれば使いまわしたいため、["~~~"]の中がどういったものであっても対応できるような方法をとりたいです(while等)。 なので、いくつ設定されているか不明、["~~~"]の中も不明(指定した条件式を書けない)という条件で、$_SESSIONの中をprintなどで書きだすことは可能なのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • duron
  • ベストアンサー率77% (73/94)
回答No.2

配列を中のキー分繰り返し処理するという場合にはforeachを使用してください。 POSTされたデータをSESSIONに保持するというなら以下のよう感じでしょうか? $postdata=$_POST; $_SESSION=array(); // セッション変数破棄(既存の値を残すなら不要) if(is_array($postdata)){ // foreachは配列でないとエラーとなるのでチェック foreach($postdata as $key => $value) { // $keyに配列のキー名 $valueに配列の値が入る $_SESSION[$key]=$value; // $valueは$postdata[$key]と同値 } } 普段扱うことがないのでセッションの扱いが正しいか自信がないですが。

picicate
質問者

お礼

記述まで頂いてありがとうございました。 foreachには思い至らなかったので本当に助かりました。

その他の回答 (1)

  • duron
  • ベストアンサー率77% (73/94)
回答No.1

print_r()もしくはvar_dump()で配列の内容を出力できます。

参考URL:
http://www.scollabo.com/banban/php/ref/ref_var_dump.html
picicate
質問者

お礼

早速のご回答ありがとうございました! 差し出がましいのですが、これを展開させて、 ポストをセッションに置き換えたい場合、???はどうしたらよいのでしょうか? $a=1 while($a<=count($array_food)){ if($_POST['???']<>""){$_SESSION['???']=$_POST['???'];} $a++;}

picicate
質問者

補足

ごめんなさい、以下の誤りです。 $a=1 while($a<=count($_SESSION)){ if($_POST['???']<>""){$_SESSION['???']=$_POST['???'];} $a++;}

関連するQ&A