• 締切済み

global変数の取り扱いについて

石井と申します。 表題の件についてご質問させて頂きます。 現在、DBにセッション情報を保持させるように セッション・プログラムを作っているのですが、 以下のように、セッション関数を登録しているとして、 session_set_save_handler( 'my_sess_open', 'my_sess_close', 'my_sess_read', 'my_sess_write', 'my_sess_destroy', 'my_sess_gc' ); my_sess_read が呼ばれたときに、 DBに登録されていたセッション値をグローバル変数var1に保存し、 my_sess_writeが呼ばれたときに、 my_sess_writeの引数で指定されたセッション・データが、 var1と違うなら、DBを更新させるというふうにしたいと考えています。 それで、質問なのですが、 phpでいうグローバル変数var1は、他人からも参照が可能になっているのでしょうか? (値がスレッド間で共有されるのか?) 別の例えで言うなら、phpのグローバル変数は javaでいうstatic修飾子のような動きをするのでしょうか? 以上、宜しくお願い致します。

みんなの回答

回答No.1

いいえ、他人からは参照できません。PHPでいうグローバル変数の「グローバル」は、関数内で定義した変数は関数内のみで有効という「ローカル」に対しての「グローバル」です。 PHPはスクリプトの頭から始まってスクリプトの終わりで終了します。ただこれだけの動作ですので、例え同じスクリプトが同時に走っていたとしても、両者の間には関連性がありません。

wanted
質問者

お礼

なるほど、スクリプト内で有効なのですね。 有難うございました。

関連するQ&A