dポイントプレゼントキャンペーン実施中!

PHPでセッションの配列を使いたいのですが、
$SESSION['foo'] = array();
のように、宣言して使うと、同じページを読んだ時に
セッションが空になってしまうのですが、
通常どのようにして宣言しているのですか?

A 回答 (3件)

ANo.2です。



普通の変数を配列として扱う場合と同様で、必ず配列として宣言が必要であるということはありません。
ただし、実際のコードを見ていないので不明な部分がありますが、値(配列)がセットされる前に配列として扱う処理(一部の配列関数など)があるとエラーを発生する可能性があるので、その場合は配列として宣言しておく必要があります。そのためにif分で分岐して必要に応じて配列として宣言するというのは妥当な処理だと思います。
    • good
    • 0
この回答へのお礼

有難うございました。ひとまず、IF分で回避して
実行しています。

お礼日時:2009/11/05 23:01

あらかじめ配列として定義されている必要がなければ宣言する必要もないですね。

当たり前といえば当たり前ですが。
それよりセッション変数は$SESSIONではなく$_SESSIONですがそこは問題ないですか?

この回答への補足

>$_SESSIONですがそこは問題ないですか?
失礼、問題ないです。
配列として使う場合は宣言が必要ですか?
現在、最初だけ$_SESSION['foo'] = array();宣言をして
同ページを読み込む時は、if文で$_SESSION['foo'] = array();を
避けるようにしています。
そうでないと、変数が再度初期化されてしまう。
なので、なにか良い方法が有るのかなと思い質問しました。

補足日時:2009/11/02 09:46
    • good
    • 0

$SESSION['foo'] = array(); //セッションのfooの配列をクリアする


なんか、少し勘違いしているのでは無いですか?

セッションを行う場合は
htmlデータを出力する前にsession_start()関数を利用する事で、
セッションを使用する事が出来るようになります。
session_start()は、その人の前のセッション情報を$_SESSIONに挿入して、
さらにリクエストしてきたユーザに対してセッションIDを発行する関数です。

この回答への補足

session_start()は行っています。
$SESSION['foo'] = array(); の宣言無しに
配列変数は使用できるのでしょうか?
宣言無しでOK?

補足日時:2009/11/02 01:21
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!