[PHP-users 32358] Re: スレッドとstatic変数の関係について
Masashi Shinbara
mag @ 1x1.jp
2007年 6月 30日 (土) 19:40:49 JST
新原です。こんにちは。
なかなか面白い話題ですね。
私は PHP を経験後、Java(Servlet) を使ったので
クラス変数が各アクセスで共有できるのが逆に驚きでした。
> つまり、ちょっと意味合いが違うかもしれませんが、
> PHPは上記のサイトでいう「シングルスレッドモデル」で
> 動作しているというイメージで考えればいいということですよね?
ですね。
さらに言うと PHP ではリクエストごとに
ソースのコンパイルから行うので
そもそもクラス定義すら保持していません。
(コードキャッシュ使用時を除く)
ですので static 変数を使っていても
他のアクセスを気にする必要はありません。
あと $GLOBALS と static 変数(クラス変数)ですが
PHP4 ではそもそもクラス変数自体がありませんでした。
ですので PHP4 でグローバル変数を使う際には
$GLOBALS が利用されていました。
# PHP3 の時は $GLOBALS もなかったような;-)
まあ一つの事をやるのに複数の手段があるというのは
良くあることですので、
ケースバイケースで使い分ければ良いかと。
----------------------------------------------
Shin x blog http://www.1x1.jp/blog/
+ Masashi Shinbara
PHP-users メーリングリストの案内