作者: T.Watanabe
日時: 2007/6/06(21:07)
  ねこ丸です。

  えーとポインタを示すのが面倒なのでそのまま書きます。

Bruce. さんは書きました:

>> 部から来た変数をより安全に使うために先に挙げた挙動の制御があり、
>> スーパーグローバル変数の利用があり、register_globals = off がある、
>> ということだと思います。
> 
> ほかの二つはわかりますが、スーパーグローバルはなぜでしょう?
> グローバル変数の性質との違いなんかがわかる資料のポインタなんかを
> 示していただけるとありがたいです。

  グローバル変数とスーパーグローバル変数の違いを文字通り捉えると、


global 宣言しなくてもどこからでもアクセスできるのがスーパーグローバル変数


  ということになります。まぁほとんどはマジック定数というか、そういうやつ
です。スクリプト起動時に自動的に決定するパラメータへのアクセスを容易にす
るためのものです。


  セキュリティにからめて言い直すと、古き悪しき PHP では register_globals
= on を設定し、GET や POST で渡ってきたパラメータがいきなりグローバル変
数にセットされるという機能を利用する世界でした。これに変数の初期化を行わ
ないカジュアルなスタイルの合わせ技で穴を作るのが昔は多かったわけです。
  今はスーパーグローバル変数 $_GET, $_POST, $_FILES を利用するのが普通だ
と思います。

  資料はとりあえずオンラインマニュアルで一通り分かるんじゃないでしょうか。

--
    ねこ丸