違いは何ですか?セッション変数が情報を保存し、ページ間で使用できることは知っていますが、いくつか質問があります。値はどこに保存されますか? セッション変数と通常の変数の違いは何ですか?
これは PHP のコンテキストにあります。これについてオンラインで多くの情報を見つけられなかったため、詳細な回答を求めています。
値はどこに保存されますか?
それはPHPの設定に依存します。デフォルトでは、セッション変数はシリアル化され、サーバーのファイル システム上のファイルに書き込まれます。セッションを開始する各ページ ビューでは、シリアル化が解除され、$_SESSION
配列からアクセスできます。データベースなどの別の場所に変数を保存できるように、既定のセッション ハンドラーをオーバーライドすることができます。
セッションは、セッション ID (一意の識別子) をクライアントのコンピューターに Cookie として保存することによって機能します。クライアントがページを要求するたびに、セッション ID Cookie が要求と共に送信され、PHP は Cookie からセッション ID を取得し、そのセッション ID に関連するセッション データを取得します。
セッション変数と通常の変数の違いは何ですか?
簡単に言えば、セッション変数はソース (ファイル システムなど) に保存されます。これにより、ページ リクエスト間でセッション変数が保持されます。通常の変数は、スクリプトの実行が完了するまでしか存続せず、その後破棄されます。
デフォルトでは、セッション変数はサーバー上のファイルに保存されます。ユーザーを指すセッションは、通常、ブラウザーに設定された Cookie で処理されます (または、おそらくクエリ文字列の醜いパラメーターですが、これはお勧めできません)。
ドキュメントには、セッションの仕組みに関する多くの情報があります。
PHP は、本質的にサーバー サイトの Cookie に (一意の ID を使用して) セッション変数を格納します。次に、ユーザーのブラウザーに Cookie を保存し、セッション ID を追跡して、後で検索できるようにします。
Cookie は基本的に、各変数のエンコードされたデータを含むテキスト ファイルです。
通常の変数は一時メモリに格納されるだけで、終了時にガベージ コレクションが行われます。
編集: また、別の定義については、この回答を参照してください: PHP: $_SESSION 内に「オブジェクト」を保存する