スーパーグローバル変数

変数

スーパーグローバル変数とは?

 状態:-  閲覧数:9,072  投稿日:2010-04-23  更新日:2017-08-16  
スクリプトにアクセスした時点で自動的に定義される変数のこと
・この変数は連想配列に格納され、また、何処からでもアクセス可能である
※関数内からでも、「global修飾子(グローバル変数を関数内で参照する際に利用)」を使うことなく参照可能
・全部で9つある

書式
$GLOBALS["グローバル変数名]


$GLOBALS

 閲覧数:696 投稿日:2017-08-16 更新日:2017-08-16 

$GLOBALS


スクリプトのグローバルスコープの中で利用可能な全ての変数(「$_SERVER」等のスーパーグローバル変数も含む)へのリファレンス(同じ変数の内容を異なった名前でコールすること。実体の別名)を格納
・配列のキーには、各変数名がセットされる
・例えば、「$air = "AIR";」と定義された変数があれば、それを「$GLOBALS['air']」でも参照可能
・このスーパーグローバル変数だけ、変数名が「_(アンダーバー)」で始まっていないことに注意が必要

$_SERVER

 閲覧数:761 投稿日:2017-08-16 更新日:2019-11-19 

$_SERVER


WEBサーバーや実行中のスクリプトに関する情報が格納される
・配列のキーに指定した文字列によって、様々な情報を得ることが可能

$_SERVER['HTTP_HOST']
・HTTPリクエストヘッダに、スクリプトが実行されているサーバのホスト名(ドメイン名)が格納されている
・格納されていない場合は、$_SERVER['SERVER_NAME']を利用

$_SERVER['SERVER_NAME']
・Apache側に設定されたホスト名(ドメイン名)が格納されている

$_SERVER['REMOTE_ADDR']
・スクリプトにアクセスしているユーザーのIPアドレス

$_SERVER["DOCUMENT_ROOT]
・「ドキュメントルート」のパス
・ドキュメントルートとは、例えばドメイン名が「php.w4c.work」であった場合、このアドレスにアクセスした時に表示されるページ(ファイル)が格納されているディレクトリのこと
・「php.w4c.work/php」にアクセスして表示されるページは、ドキュメントルート内にある「php」というディレクトリ内にあるファイル

$_SERVER['PHP_SELF']
・現在実行中のスクリプトの、ファイル名を含めたドキュメントルートからの相対パス

例1.


php.w4c.work/originalSample/perfect/oneline_bbs/bbs.php

$_SERVER['HTTP_HOST']
・php.w4c.work

$_SERVER['SERVER_NAME']
・php.w4c.work

$_SERVER['REQUEST_URI']
・/originalSample/perfect/oneline_bbs/bbs.php

$_SERVER['SCRIPT_NAME']
・/originalSample/perfect/oneline_bbs/bbs.php

例2.


php.w4c.work/originalSample/perfect/oneline_bbs/index.php

$_SERVER['HTTP_HOST']
・php.w4c.work

$_SERVER['SERVER_NAME']
・php.w4c.work

$_SERVER['REQUEST_URI']
・/originalSample/perfect/oneline_bbs/index.php

$_SERVER['SCRIPT_NAME']
・/originalSample/perfect/oneline_bbs/index.php

例3.


php.w4c.work/originalSample/perfect/oneline_bbs/

$_SERVER['HTTP_HOST']
・php.w4c.work

$_SERVER['SERVER_NAME']
・php.w4c.work

$_SERVER['REQUEST_URI']
・/originalSample/perfect/oneline_bbs/

$_SERVER['SCRIPT_NAME']
・/originalSample/perfect/oneline_bbs/index.php

例4.


php.w4c.work/originalSample/hoge/piyo.php?q=1&t=1317218441&PHPSESSID=drpah475d6sfj

$_SERVER['REQUEST_URI']
・/originalSample/hoge/piyo.php?q=1&t=1317218441&PHPSESSID=drpah475d6sfj

$_SERVER['SCRIPT_NAME']
・/originalSample/hoge/piyo.php

例5.フロントコントローラ


・index.phpは"/foo/bar"以下
example.com/foo/bar/list

$_SERVER['REQUEST_URI']
・/foo/bar/list/

$_SERVER['SCRIPT_NAME']
・/foo/bar/index.php

例6.フロントコントローラ


example.com/index.php/list?foo=bar

$_SERVER['REQUEST_URI']
・/index.php/list?foo=bar

$_SERVER['SCRIPT_NAME']
・/index.php

例7.フロントコントローラ


・index.phpは"/"以下
example.com/

$_SERVER['REQUEST_URI']
・/

$_SERVER['SCRIPT_NAME']
・/index.php


PHPで$_SERVERを使ってURL(パラメータ)を取得する。

$_GET

 閲覧数:708 投稿日:2017-08-16 更新日:2017-08-16 

$_GET



フォームなどから「HTTP GET」で送信された値が格納される。例えば、「php.w4c.work/?air=AIR」と送信された場合、それを「$_GET['air']」で参照できる。



$_POST



フォームなどから「HTTP POST」で送信された値が格納される。例えば、「<input type="hidden" name="air" value="AIR" />」が送信された場合、それを「$_POST['air']」で参照できる。

▼$_COOKIE
そのページに対応した「HTTP Cookie」が格納される。例えば、「air=AIR」というCookieがセットされていれば、それを「$_COOKIE['hode']」で参照できる。

Cookieの送信

   $air = "AIR";
   setcookie('air', $air, time() + 3600);//ブラウザにCookieが送信され、ブラウザの種類によって以下のような情報(クッキー名とその値、有効期限等の文字列情報)がPCに記録される(Cookieが無効に設定されている場合は保存されない)。3600秒=1時間
   echo "「air=AIR」というCookieをセットしました!"

▼結果
  /demo/setcookie.html


1時間以内に下記ページにアクセスすれば、Cookieを得られる

   echo $_COOKIE['air'];

▼結果
  /demo/getcookie.html




$_FILES



フォームの「HTTP POST ファイルアップロード」によって送信された(されようとしている)ファイルに関する情報が二次元配列で格納される。例えば、HTMLで「type」属性「file」、「name」属性「aie_file」と名付けたフォームからファイルの送信を試みると、
  「$_FILES['air_file']['name']」、
  「$_FILES['air_file']['type']」、
  「$_FILES['air_file']['tmp_name']」、
  「$_FILES['air_file']['error']」、
  「$_FILES['air_file']['size']」
  という5つの要素を持った配列が生成される。



$_ENV



この配列には、「環境変数」が格納される。「環境変数」についてはサーバ設定等によって得られる値が変わる。



$_REQUEST



この配列には、「$_GET」、「$_POST」、「$_COOKIE」、「$_FILES」の値が格納される。例えば、「php.w4c.work/?air=AIR」と送信された場合、「$_REQUEST['aire']」でも参照できる。



$_SESSION



この配列には、「セッション」に関する情報が格納される。


ローカル変数

静的(スタティック)変数

コメント投稿(ログインが必要)



週間人気ページランキング / 7-18 → 7-24
順位 ページタイトル抜粋 アクセス数
1 PHP用語 7
2 マジックメソッド(クラスとオブジェクト) カテゴリー 4
3 遭遇例1.存在する間違ったデータベース名を指定 3
3 リファレンス基本操作は3通り 3
3 ログイン 3
4 プログラムの基本三構造 | 制御構造 2
4 You currently have Essential access which includes access to Twitter API v2 endpoints only. If you need access to this endpoint, you’ll need to apply for Elevated access via the Developer Portal. | Twitter API(エラーメッセージ) 2
4 htmlspecialchars / htmlentities / addslashes / mysql_real_escape_string / mysqli_real_escape_string | セキュリティ 2
4 デフォルト引数 | 関数 2
4 Fatal error: Uncaught Error: Class 'Mecab_Tagger' not found in /var/www/★★.php:☆☆ | Fatal error(エラーメッセージ) 2
4 CodeIgniter 2
5 コンストラクタ デストラクタ | クラスとオブジェクト 1
5 PHPでcurlを使用するためには?/ 2.オプション設定 / curlでPOST送信 1
5 「添え字(インデックス)」と「要素(値)」で、構成されている 1
5 サニタイズ | セキュリティ 1
5 演算子 1
5 Strict Standards: DateTime::__construct() [function.DateTime---construct]: It is | エラーメッセージ 1
5 型の相互変換 | 型 1
5 Doctrine | データベース関連 1
5 トレイト | クラスとオブジェクト 1
2026/7/25 5:05 更新