PHP スーパー グローバルは、すべてのスコープからアクセスできる組み込み変数です。

PHP スーパー グローバル (PHP スーパー グローバル)

このレッスンでは、PHP のすべてのスーパー グローバルを例を挙げて説明します。続きを読んで調べてください。

PHP スーパー グローバル: $GLOBALS

$GLOBALS スーパーグローバルは、PHP スクリプト内の任意のフィールド (関数またはメソッドを含む) からグローバル変数にアクセスするために使用されます。 PHP は、すべてのグローバル変数を $GLOBALS[index] という配列に保存します。インデックスは変数の名前を保持します。次の例は、$GLOBALS スーパーグローバル変数の使用方法を示しています。

$number1 = 50;
$number2 = 20;
function addition(): int
{
    return $GLOBALS[ 'number3' ] = $GLOBALS[ 'number2' ] + $GLOBALS[ 'number1' ];
}
echo addition();
// Çıktı: 70

PHP スーパー グローバル: $_REQUEST

PHP $_REQUEST は、HTML フォームからデータを収集するために使用される PHP スーパーグローバルです。

<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php
echo $_SERVER[ 'PHP_SELF' ]; ?>">
    Name: <input type="text" name="fname">
    <input type="submit">
</form>
<?php
if ($_SERVER[ 'REQUEST_METHOD' ] === 'POST') {
    // input elementinden gelen veriyi değişkene ata
    $name = htmlspecialchars($_REQUEST[ 'fname' ]);
    if (empty($name)) {
        echo 'Ad yok';
    } else {
        echo $name;
    }
}
?>
</body>
</html>

上の例では、post メソッドでデータを返すフォームを作成しました。 $_SERVER['PHP_SELF'] と同じページのデータを返すようにしました。 $_SERVER['REQUEST_METHOD'] スーパーグローバルに伴うリクエストがポストリクエストであることを確認しました。次に、htmlspecialchars() 関数を使用して、name 値を持つ fname という名前の入力からのデータを $_REQUEST スーパーグローバルを持つ $name 変数に安全に割り当てました。 $name 変数が空かどうかを PHP の if 条件で確認しました。空の場合は「No name」という出力を出力し、それ以外の場合は $name 変数のデータを出力します。

PHP スーパー グローバル: $_POST

PHP $_POST は、POST メソッドを介して HTML フォームからデータを収集するために使用される PHP スーパーグローバルです。

<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php
echo $_SERVER[ 'PHP_SELF' ]; ?>">
    Name: <input type="text" name="fname">
    <input type="submit">
</form>
<?php
if ($_SERVER[ 'REQUEST_METHOD' ] === 'POST') {
    // input elementinden gelen veriyi değişkene ata
    $name = htmlspecialchars($_POST[ 'fname' ]);
    if (empty($name)) {
        echo 'Ad yok';
    } else {
        echo $name;
    }
}
?>
</body>
</html>

上の例では、post メソッドでデータを返すフォームを作成しました。 $_SERVER['PHP_SELF'] と同じページのデータを返すようにしました。 $_SERVER['REQUEST_METHOD'] スーパーグローバルに伴うリクエストがポストリクエストであることを確認しました。次に、htmlspecialchars() 関数を使用して、name 値を持つ fname という名前の入力からのデータを $_POST スーパーグローバルで $name 変数に安全に割り当てました。 $name 変数が空かどうかを PHP の if 条件で確認しました。空の場合は「No name」という出力を出力し、それ以外の場合は $name 変数のデータを出力します。

PHP スーパー グローバル: $_GET

PHP $_GET は、GET メソッドを介して HTML フォームからデータを収集するために使用される PHP スーパーグローバルです。 $_GET スーパーグローバルを使用して、URL 内の get で送信されたデータを取得することもできます。

PHP $_GET Super Global を使用してフォームからデータを取得する

以下の例では、PHP $_GET スーパーグローバルを使用して HTML フォームからデータを受信しました。

<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php
echo $_SERVER[ 'PHP_SELF' ]; ?>">
    Name: <input type="text" name="fname">
    <input type="submit">
</form>
<?php
if ($_SERVER[ 'REQUEST_METHOD' ] === 'GET') {
    // input elementinden gelen veriyi değişkene ata
    $name = htmlspecialchars($_GET[ 'fname' ]);
    if (empty($name)) {
        echo 'Ad yok';
    } else {
        echo $name;
    }
}
?>
</body>
</html>

上の例では、post メソッドでデータを返すフォームを作成しました。 $_SERVER['PHP_SELF'] と同じページのデータを返すようにしました。 $_SERVER['REQUEST_METHOD'] スーパーグローバルに伴うリクエストがポストリクエストであることを確認しました。次に、htmlspecialchars() 関数を使用して、name 値を持つ fname という名前の入力からのデータを $_POST スーパーグローバルで $name 変数に安全に割り当てました。 $name 変数が空かどうかを PHP の if 条件で確認しました。空の場合は「No name」という出力を出力し、それ以外の場合は $name 変数のデータを出力します。

PHP $_GET Super Global を使用して URL からデータを取得する

以下の例では、PHP $_GET スーパーグローバルを使用して URL からデータを取得しました。

<!DOCTYPE html>
<html>
<body>
<a href="<?php
echo $_SERVER[ 'PHP_SELF' ] ?>?name=Onur%20Özden&website=www.onurozden.com.tr">Buraya Tıkla</a>
<?php
echo "Ben " . $_GET[ 'name' ] . " şu sitede PHP öğreniyorum: " . $_GET[ 'website' ];
?>
</body>
</html>

上の例では、ファイル名を入力する代わりに、$_SERVER スーパーグローバルを使用してファイル名を取得しています。この例で何をしたか説明しましょう。 HTML ドキュメントを作成し、get.php ファイルに name パラメーターを指定しました。 name パラメータに値「Onur Özden」を与え、パラメータを「&」記号で区切りました。その後、Web サイトパラメータを作成し、値「onurozden.com.tr」を与えました。ラベル A に「Click Here」というテキストを出力しました。PHP 部分に戻ると、echo で「My name」を出力し、$_GET スーパーグローバルと連結演算子を使用して、name という名前のパラメータのデータを取得して出力しました。もう一度、マージ演算子を使用して、「と私のウェブサイト」を出力しました。再度連結演算子を使用し、$GET スーパーグローバルで Web サイトのパラメーターのデータを取得し、出力しました。

PHP スーパー グローバル: $_SERVER

$_SERVER スーパーグローバルは、ヘッダー、パス、およびスクリプトの場所に関する情報を保持する PHP スーパーグローバル変数です。以下の例では、$_SERVER スーパーグローバルの使用方法を示します。

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'];

上の例では、$number1 と $number2 という名前の変数を定義し、それらに数値型の値を与えました。次に、int データ型の値を返す addition という関数を定義しました。 $GLOBALS スーパーグローバルでは、変数の名前がインデックスとして保持されると述べました。 number3 という名前のインデックスを作成して変数を作成しました。この変数には、$GLOBALS スーパーグローバルを使用してグローバル領域からアクセスした $number2 変数と $number1 変数の合計を割り当てました。次に、return でこの値を返し、関数を終了しました。最後のステップとして、echo を使用して add() 関数の値を出力します。

PHP $_SERVER スーパー グローバルのすべての使用法

$_SERVER['PHP_SELF']実行されたスクリプトのファイル名を返します。
$_SERVER['ゲートウェイ_インターフェイス']サーバーが使用する CGI (Common Gateway Interface) のバージョンを返します。
$_SERVER['SERVER_ADDR']ホストサーバーのIPアドレスを返します。
$_SERVER['SERVER_NAME']メインサーバーの名前を返します。
$_SERVER['SERVER_SOFTWARE']サーバー識別テキスト (Apache/2.2.24 など) を返します。
$_SERVER['SERVER_PROTOCOL']情報プロトコル (HTTP/1.1 など) の名前とバージョンを返します。
$_SERVER['REQUEST_METHOD']ページへのアクセスに使用されるリクエスト メソッド (POST、GET など) を返します。
$_SERVER['REQUEST_TIME']リクエストの開始時のタイムスタンプを返します (例: 1377687496)。
$_SERVER['QUERY_STRING']クエリ文字列を介してページにアクセスすると、クエリ文字列が返されます。
$_SERVER['HTTP_ACCEPT']現在のリクエストから accept ヘッダーを返します。
$_SERVER['HTTP_ACCEPT_CHARSET']現在のリクエストから Accept_Charset ヘッダーを返します (utf-8、ISO-8859-1 など)。
$_SERVER['HTTP_HOST']現在のリクエストからホストヘッダーを返します。
$_SERVER['HTTP_REFERER']現在のページの完全な URL を返します (すべてのユーザー エージェントがサポートしているわけではないため、信頼性は高くありません)。
$_SERVER['HTTPS']スクリプトがセキュア HTTP プロトコル (HTTPS) 経由でクエリされるかどうかを確認します。
$_SERVER['REMOTE_ADDR']ユーザーが現在のページを表示している IP アドレスを返します。
$_SERVER['REMOTE_HOST']ユーザーが現在のページを表示しているホスト名を返します。
$_SERVER['REMOTE_PORT']ユーザーのマシンで Web サーバーとの通信に使用されるポートを返します。
$_SERVER['SCRIPT_FILENAME']現在実行中のスクリプトの絶対パスを返します。
$_SERVER['SERVER_ADMIN']Web サーバー構成ファイル内の SERVER_ADMIN ディレクティブに指定された値を返します (スクリプトが仮想ホスト上で実行されている場合は、その仮想ホストに定義された値になります) (some@onurozden.com.tr など)。
$_SERVER['SERVER_PORT']Web サーバーが通信に使用するサーバー マシン上のポート (80 など) を返します。
$_SERVER['SERVER_SIGNATURE']サーバー生成ページに追加されたサーバーのバージョンと仮想ホスト名を返します。
$_SERVER['PATH_TRANSLATED']現在のスクリプトへのファイル システム ベースのパスを返します。
$_SERVER['SCRIPT_FILENAME']現在のスクリプトへのパスを返します。
$_SERVER['SCRIPT_URI']現在のページの URI を返します。