PHPスーパーグローバル変数

5638 ワード

前言:
php中$REQUESTはPOSTメソッドとGETメソッドでコミットされたデータを取得できるが,速度は比較的遅い.
$_GETメソッド:転送データ量が小さく、2 KBを超えることはできません.
PHPグローバル変数-スーパーグローバル変数
PHPの定義済み変数の多くは「スーパーグローバル」であり、スクリプトのすべての役割ドメインで使用できることを意味します.関数またはメソッドでglobal$variableを実行する必要はありません.アクセスできます.
これらのスーパーグローバル変数は次のとおりです.
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
このセクションでは、スーパーグローバル変数について説明し、後述する他のスーパーグローバル変数について説明します.
$GLOBALS-グローバル役割ドメインで使用可能なすべての変数を参照
$GLOBALSというグローバル変数は、PHPスクリプト内の任意の場所でグローバル変数にアクセスするために使用されます(関数またはメソッドから使用できます).
PHPは$GLOBALS[index]という配列にすべてのグローバル変数を格納している.変数の名前は配列のキーです.
次の例では、スーパーグローバル変数$GLOBALSの使用方法を示します.
≪インスタンス|Instance|emdw≫
<?php 
$x = 75; 
$y = 25;
 
function addition() { 
  $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
}
 
addition(); 
echo $z; 
?>

インスタンスの実行
上記の例では、zは$GLOBALS配列の変数であるため、関数以外でもアクセス可能である.
PHP $_SERVER
$_SERVERというスーパーグローバル変数は、ヘッダ、パス、スクリプトの位置に関する情報を保存します.
次の例では、$_の使用方法を示します.SERVERの一部の要素:
≪インスタンス|Instance|emdw≫
<?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.w 3 school.com.cnなど)を返します.
$_SERVER['SERVER_SOFTWARE']
サーバ識別文字列(Apache/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フォームから送信されたデータを収集するために使用されます.
次の例では、入力フィールドとコミットボタンを含むフォームを示します.ユーザーがコミットボタンをクリックしてフォームデータをコミットすると、フォームデータは
ラベルのactionプロパティで指定したスクリプトファイルに送信されます.この例では、フォームデータを処理するためにファイル自体を指定します.フォームデータを処理するために他のPHPファイルを使用する必要がある場合は、選択したファイル名に変更します.次に、スーパーグローバル変数$_を使用します.REQUESTは、inputフィールドの値を収集します.
≪インスタンス|Instance|emdw≫
<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はmethod=「post」のHTMLフォームを提出した後のフォームデータを収集するのに広く使われています.$POSTは変数の伝達にもよく用いられる.
次の例では、入力フィールドとコミットボタンを含むフォームを示します.ユーザーがコミットボタンをクリックしてデータをコミットすると、フォームデータはラベルのactionプロパティで指定したファイルに送信されます.この例では、フォームデータを処理するためにファイル自体を指定します.別のPHPページを使用してフォームデータを処理する場合は、選択したファイル名に変更します.次に、スーパーグローバル変数$_を使用できます.POSTは入力フィールドの値を収集する:
≪インスタンス|Instance|emdw≫
<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>

インスタンスの実行
PHP $_GET
PHP $_GETは、HTMLフォーム(method="get")をコミットした後のフォームデータを収集するためにも使用できます.
$_GETは、URLで送信されたデータを収集することもできます.
パラメータ付きハイパーリンクを含むページがあるとします.
<html>
<body>

<a href="test_get.php?subject=PHP&web=W3school.com.cn">   $GET</a>

</body>
</html>

ユーザーがリンク「Test$GET」をクリックすると、パラメータ「subject」と「web」が「test_get.php」に送信され、$GETは「test_get.php」でこれらの値にアクセスしました.
次の例は、test_get.phpのコードです.
≪インスタンス|Instance|emdw≫
<html>
<body>

<?php 
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>

</body>
</html>

インスタンスの実行
ヒント:PHPフォームの項では、$_について詳しく説明します.POSTと$GETの知識.