[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 メーリングリストの案内