QA@IT
«回答へ戻る

回答を投稿

ArrayStorage

  • $_SESSION への値の格納は register_shutdown_function で終了時に行われます
    • よってアプリで $_SESSION を直接使うことはできません
    • 直接 $_SESSION に値を格納してもリクエスト終了時に上書きされます
  • リクエスト開始時に $_SESSION からのセッションの復元が行われません
    • 自前で ArrayStorage のプロパティをセットする必要があります

SessionStorage

  • $_SESSION を SessionStorage のインスタンスに置き換えます
  • $_SESSION instanseof SessionStorage; // true

SessionArrayStorage

  • SessionArrayStorage の __get や offsetGet で $_SESSION の要素の参照を返します
  • $_SESSION はただの配列のままで SessionArrayStorage が返す参照経由でセッション変数を操作します
## ArrayStorage

- $_SESSION への値の格納は register_shutdown_function で終了時に行われます
    - よってアプリで $_SESSION を直接使うことはできません
    - 直接 $_SESSION に値を格納してもリクエスト終了時に上書きされます
- リクエスト開始時に $_SESSION からのセッションの復元が行われません
    - 自前で ArrayStorage のプロパティをセットする必要があります

## SessionStorage

- $_SESSION を SessionStorage のインスタンスに置き換えます
- $_SESSION instanseof SessionStorage; // true

## SessionArrayStorage

- SessionArrayStorage の __get や offsetGet で $_SESSION の要素の参照を返します
- $_SESSION はただの配列のままで SessionArrayStorage が返す参照経由でセッション変数を操作します