PHPスーパーグローバル変数
PHP スーパー グローバル変数
スーパー グローバル変数は、PHP 4.1.0 以降で有効になり、PHP システムに付属する変数であり、スクリプトのスコープ全体で使用できます。
PHP スーパー グローバル変数
PHP ではいくつかのスーパー グローバル変数 (スーパーグローバル) が事前定義されており、スクリプトのスコープ全体で使用できることを意味します。 特別な指示なしで関数やクラスで使用できます。
PHP スーパーグローバル変数リスト: GET
· $_FILES
· $_SESSION
この章では、よく使用されるいくつかのスーパーグローバル変数について説明します。残りの変数については、次の数章で紹介します。
PHP $GLOBALS$GLOBALS は、PHP スクリプトのスコープ全体でアクセスできる PHP のスーパーグローバル変数グループです。
$GLOBALS は、すべての変数を含むグローバル結合配列です。変数の名前は配列のキーです。
次の例では、スーパー グローバル変数 $GLOBALS の使用方法を紹介します。
例
<?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?>
上記の例では、z は $GLOBALS 配列内のスーパー グローバル変数であり、関数の外部からもアクセスできます。
PHP $_SERVER
$_SERVER は、ヘッダー、パス、スクリプトの場所などの情報を含む配列です。この配列内の項目は Web サーバーによって作成されます。すべてのサーバーがすべてのアイテムを提供するという保証はありません。サーバーは一部のアイテムを無視したり、ここにリストされていないアイテムを提供したりする可能性があります。
次の例は、$_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 変数内のすべての重要な要素を示しています。
PHP $_REQUEST は、HTML フォームによって送信されたデータを収集するために使用されます。次の例は、入力フィールドと送信ボタンのあるフォームを示しています。 ユーザーが「送信」ボタンをクリックしてフォームデータを送信すると、<form>タグのaction属性に指定されたスクリプトファイルにフォームデータが送信されます。 この例では、フォーム データを処理するファイルを指定します。別の PHP ファイルでこのデータを処理する場合は、指定したスクリプト ファイル名を変更できます。 次に、スーパー グローバル変数 $_REQUEST を使用して、次の形式で入力フィールド データを収集できます。
Example
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Name: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_REQUEST['fname']; echo $name; ?> </body> </html>
PHP $_POST
PHP $_POST は、HTML フォーム タグでフォーム データを収集するために広く使用されています。この属性を指定します: "method="post"。
次の例は、入力フィールドと送信ボタンのあるフォームを示しています。ユーザーが「送信」ボタンをクリックしてフォーム データを送信すると、フォーム データが送信されます。この例では、フォーム データを処理するファイルを指定します。別の PHP ファイルでデータを処理する場合は、指定したスクリプト ファイル名を変更できます。次に、スーパー グローバル変数 $_POST を使用して、次の形式で入力フィールド データを収集できます。フォームタグのこの属性: "method="get"。
$_GET は、URL で送信されたデータを収集することもできます。
パラメータを含むハイパーリンクされた HTML ページがあるとします。
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Name: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_POST['fname']; echo $name; ?> </body> </html>
ユーザーがリンク「Test $GET」をクリックすると、パラメータ「subject」と「web」が「test_get.php」に送信されます。このデータを取得するには「test_get.php」ファイルを使用します。 次の例は、「test_get.php」ファイルのコードを示しています:
Example
<html> <body> <a href="test_get.php?subject=PHP&web=php.cn">Test $GET</a> </body> </html>