PHP グローバル変数 - スーパーグローバル変数
PHP の事前定義変数の多くは「スーパーグローバル」です。これは、スクリプトのスコープ全体で使用できることを意味します。これらは、 global $variable; を実行せずに、関数またはメソッド内でアクセスできます。
これらのスーパーグローバル変数は次のとおりです:
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
このセクションではいくつかを紹介しますスーパーグローバル変数と他のスーパーグローバル変数については、後の章で説明します。
$GLOBALS — グローバル スコープで使用可能なすべての変数を参照します
$GLOBALS このグローバル変数は、PHP スクリプト内のどこからでも (関数またはメソッドから) グローバル変数にアクセスするために使用されます。
PHP は、すべてのグローバル変数を $GLOBALS[index] という配列に保存します。変数の名前は配列のキーです。
次の例は、スーパーグローバル変数 $GLOBALS の使用方法を示しています:
例
<?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?>
実行例
上記の例では、z は $GLOBALS 配列内の変数であるため、関数の外部からアクセスすることもできます。
PHP $_SERVER
$_SERVER このスーパーグローバル変数は、ヘッダー、パス、スクリプトの場所に関する情報を保持します。
次の例は、$_SERVER でいくつかの要素を使用する方法を示しています:
例
<?php echo $_SERVER['PHP_SELF']; echo "<br>"; echo $_SERVER['SERVER_NAME']; echo "<br>"; echo $_SERVER['HTTP_HOST']; echo "<br>"; echo $_SERVER['HTTP_REFERER']; echo "<br>"; echo $_SERVER['HTTP_USER_AGENT']; echo "<br>"; echo $_SERVER['SCRIPT_NAME']; ?>
実行例
次の表は、$_SERVER でアクセスできる最も重要な要素を示しています:
要素/コードの説明
$_SERVER ['PHP_SELF'] は、現在実行中のスクリプトのファイル名を返します。
$_SERVER['GATEWAY_INTERFACE'] は、サーバーが使用する CGI 仕様のバージョンを返します。
$_SERVER['SERVER_ADDR'] は、スクリプトが現在実行されているサーバーの IP アドレスを返します。
$_SERVER['SERVER_NAME'] は、スクリプトが現在実行されているサーバーのホスト名 (www.w3school.com.cn など) を返します。
$_SERVER['SERVER_SOFTWARE'] はサーバー識別文字列 (Apache/2.2.24 など) を返します。
$_SERVER['SERVER_PROTOCOL'] ページがリクエストされたときに使用された通信プロトコルの名前とバージョンを返します (たとえば、「HTTP/1.0」)。
$_SERVER['REQUEST_METHOD'] は、ページへのアクセスに使用されるリクエスト メソッド (POST など) を返します。
$_SERVER['REQUEST_TIME'] は、リクエストが開始されたときのタイムスタンプを返します (例: 1577687494)。
$_SERVER['QUERY_STRING'] は、このページがクエリ文字列を介してアクセスされた場合、クエリ文字列を返します。
$_SERVER['HTTP_ACCEPT'] は、現在のリクエストからリクエスト ヘッダーを返します。
$_SERVER['HTTP_ACCEPT_CHARSET'] は、現在のリクエストから Accept_Charset ヘッダーを返します (例: utf-8、ISO-8859-1)
$_SERVER['HTTP_HOST'] は、現在のリクエストから Host ヘッダーを返します。
$_SERVER['HTTP_REFERER'] 現在のページの完全な URL を返します (すべてのユーザー エージェントでサポートされていないため信頼できません)。
$_SERVER['HTTPS'] 安全な HTTP プロトコルを通じてスクリプトをクエリするかどうか。
$_SERVER['REMOTE_ADDR'] 現在のページを閲覧しているユーザーの IP アドレスを返します。
$_SERVER['REMOTE_HOST'] は、現在のページを閲覧しているユーザーのホスト名を返します。
$_SERVER['REMOTE_PORT'] Web サーバーに接続するためにユーザーのマシンで使用されるポート番号を返します。
$_SERVER['SCRIPT_FILENAME'] は、現在実行中のスクリプトの絶対パスを返します。
$_SERVER['SERVER_ADMIN'] この値は、Apache サーバー構成ファイルの SERVER_ADMIN パラメーターを指定します。
$_SERVER['SERVER_PORT'] Web サーバーによって使用されるポート。デフォルト値は「80」です。
$_SERVER['SERVER_SIGNATURE'] はサーバーのバージョンと仮想ホスト名を返します。
$_SERVER['PATH_TRANSLATED'] 現在のスクリプトが配置されているファイル システムのベース パス (ドキュメント ルート ディレクトリではありません)。
$_SERVER['SCRIPT_NAME'] は、現在のスクリプトのパスを返します。
$_SERVER['SCRIPT_URI'] は、現在のページの URI を返します。
PHP $_REQUEST
PHP $_REQUEST は、HTML フォームによって送信されたデータを収集するために使用されます。
以下の例は、入力フィールドと送信ボタンのあるフォームを示しています。ユーザーが送信ボタンをクリックしてフォームデータを送信すると、