• ベストアンサー

SESSION変数と同じ変数名は使えないのかな?

よろしくお願いいたします。 以下のように記述しました。 <?php session_start(); $_SESSION["abc"]="hello world!"; print("abc:1:{$_SESSION["abc"]}<br/>"); $abc="000"; print("abc:2:{$_SESSION["abc"]}<br/>"); ?> 1回目の実行は abc:1:hello world! abc:2:hello world! ですが、F5を押しますと、 abc:1:hello world! abc:2:000 となります。 デバッガ(Peggyですが)をかけると、見事に$abc="000";の行を実行 すると、$_SESSION["abc"]の値もかわります。 これは仕様なのでしょうか? Documentを見る限りわかりませんでした。 PHP5.2.0です。 以上、よろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Hardking
  • ベストアンサー率45% (73/160)
回答No.2

とりあえず、設定ファイルの確認をして下さい。 php.iniファイルの'register_globals'の設定が ONの場合は、OFFに変更してファイルを保存する。 Webサーバー再起動後、再試行してください。

sayaama
質問者

お礼

どうもありがとうございました。 動作しました。また、 『PHPバージョン4.2以降で動かないということが多発しており、いわゆる「register_globals問題」として知られている。』 のような記事もみつけることができました。 さらに、これは、V4.2以降の『正しい挙動』ということも理解しました。 THanks!です^^;^^;

その他の回答 (1)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

当方の環境(Windows2000, PHP5.2.2, Apache2.0.59のlocalhost)では、 ページを何度リロードしても abc:1:hello world! abc:2:hello world! を表示しました。 一般の変数の値でセッション変数を書き換えてしまうことはありませんでした。

sayaama
質問者

お礼

わざわざためしていただきまして、どうもありがとうございました。

関連するQ&A