第8章 リクエスト情報 / 第5回 模擬試験

PHPの`$_SESSION`を使ったセッション情報の読み書きに関する次の記述のうち、正しいものはどれか。

`$_SESSION['key'] = 'value';`のように、通常の配列と同じ操作でセッションにデータを保存できる。 正解
セッションへの書き込みには、専用の`session_write()`関数を必ず呼び出す必要がある。
`$_SESSION`はページを再読み込みするとリセットされ、必ず空になる。
セッションは1つのブラウザにつき無制限に作成でき、削除する方法は存在しない。
解説
`session_start()`を呼んだ後は、`$_SESSION['key'] = 'value';`のように、通常の連想配列と同じ書き方でセッションにデータを保存・読み取りできます。特別な専用関数を呼ぶ必要はありません。 他の選択肢が誤りである理由は次の通りです。 ・セッションへの書き込みに`session_write()`のような専用関数は存在しません。`$_SESSION`配列への代入がそのまま書き込みになります。 ・`$_SESSION`はページを再読み込みしてもリセットされません。同じセッションIDを持つブラウザからのアクセスであれば、保存した内容はサーバー側に保持され続けます。 ・セッションは`session_destroy()`などで明示的に削除できます。「削除する方法は存在しない」というのは誤りです。 例: ``` session_start(); $_SESSION['user_id'] = 1; // 書き込み echo $_SESSION['user_id']; // 読み取り(別ページでも保持される) ``` (参照: 独習PHP 第4版 第8章 リクエスト情報 8.7.1節 基本的なセッション情報の読み書き p.387〜388)