Web制作メモ -トップへ-

[PHP] セッション変数の添え字には数字以外の文字が必要

PHP2015.02.09 13:40

まず、セッション変数は連想配列とする必要があります。

$_SESSIONに通常配列で値を格納した場合、セッション変数として機能しません。

この場合、単なる変数として動作し、同じページでは値を参照できますが、ページを遷移すると値が取れないという動作になります。

次に、PHPでは配列の添え字が数値に変換できる形式の場合、自動的に通常配列として格納されます。

例えば、$_SESSION["1"]として、1という文字列の連想配列でセッションを保存しようとしても、連想配列とはなりません。

この場合、$_SESSION[1]という通常配列として格納されます。

この自動変換が厄介で、セッション変数であろうと自動的に通常配列に変換されます。

上述したように、セッション変数は連想配列である必要がありますので、通常配列に変換されるとセッション変数として機能しません。

これを防ぐには、セッション変数の添え字に数字以外の文字を含めます。

忘れた時に地味に嵌るので、しっかり覚えておいたほうがいいです。

まとめ

セッション変数の添え字には数字以外の文字を含める必要がある。