2011年4月9日土曜日

PHP セッション変数をグローバル変数として使ったら

 どうもPHPの変数の振る舞いがいまいちわからずに悩んでいます。PHPでは変数宣言をしなくてはいいらしい。でもグローバル変数の場合は以下のように宣言するというのを知った。これを一番先頭でやったら、自分で作った関数側ではどうも見えないようなのだ。それでそれぞれの関数の中で宣言してやると見えるのだ。ということは、これらの変数を使う関数が10個あればそれぞれの関数の中で10回も宣言しなければならない。これって絶対におかしい。おかしいけれどもそうなのだからしょうがない、私の使い方がおかしいのだろうか。
global $radio1;
        global $radio2;
        global $answer;
 そこで思いついたのはセッション変数である。以下のように別に変数宣言などしなくても、その場で代入してやれば、それだけでどの場所でも使えるのである。グローバル変数でやろうとしていることを全部セッション変数に置き換えたらどこかに不都合が生じるのだろうか。正しい変数の使い方ってどっちを採用すべきなのだろうか。
    $_SESSION[ "id" ] = $col{"id"};
        $_SESSION[ "mondai" ] = $col{"mondai"};
        $_SESSION[ "kaisetu" ] = $col{"kaisetu"};
        $_SESSION[ "seikai" ] = $col{"seikai"};
      ↓これは普通の変数
        $imgurl = $col{"imgurl"};
 かなり悩むところだが、明日は全部をセッション変数でやってみようと思う。駄目だったら元に戻せばいいのだから。なんかオレとんでもなく大きな間違いを犯しそうになっているのかな。わからん
コメントを投稿