前回の記事では「5分でわかるPHP匿名関数(具体例)」をご紹介しましたが、この記事ではPHPの匿名関数に関する知識を詳しく紹介しています。関数内で参照できるスーパー グローバル変数に関連する問題を見てください。皆さんのお役に立てれば幸いです。
関数の外で定義されたグローバル変数は関数内で参照できませんが、場合によってはこれらのグローバル変数を関数内で使用する必要がある場合は、スーパーグローバル変数を使用する必要があります。スーパーグローバル変数は関数内で参照できます。
いくつかのスーパー グローバル変数が PHP で事前定義されています。つまり、これらの変数はスクリプトのスコープ全体で参照できます。特別な命令なしで、スーパー グローバル変数を関数やクラスで使用できます。
#PHP スーパーグローバル変数:
まず、見てみましょう:
PHP $GLOBALS
$GLOBALSは、グローバル スコープで使用可能なすべての変数を含む事前定義されたスーパーグローバル配列です。変数の名前は配列のキーです。 $GLOBALS には、PHP スクリプトのスコープ全体からアクセスできます。 例は次のとおりです。
<?php //定义两个全局变量,函数内部不可以访问 $a = 75; $b = 25; //定义函数 function addition() { //将全局变量变为超级全局变量,这样在函数内部就可以正常访问了 $GLOBALS['c'] = $GLOBALS['a'] + $GLOBALS['b']; } //调用函数 addition(); //输出函数内部定义的全局变量 echo $c; ?>
$GLOBALS は、must に限定されません。関数内で使用でき、プログラム内のどこでも使用できます。上記の例からわかるように、グローバル変数はスーパーグローバル変数となり、関数内で通常にアクセスできるようになります。
$GLOBALS によく似た
というキーワードもあります。関数の外で定義されたグローバル変数を関数内で使用します。 構文形式は次のとおりです。
global 变量1, 变量2, ...
global キーワードの後にはパラメータとして複数の変数を続けることができ、複数の変数は「,」 (カンマ) で区切られます。同時に、global を使用するときは、いくつかの重要な点に注意する必要があります:
<?php $a = 1; $b = 2; $c = 3; function demo(){ global $a, $b; echo "变量 a:".$a; echo "<br>变量 b:".$b; echo "<br>变量 c:".$c; } demo(); ?>
出力結果:
グローバル キーワードは変数内でのみ変更されるため、結果は変数 a と b のみを出力することがわかります。 function が 2 つあるため、変数 c は正常に使用されません。
2 つの例を通して、グローバルと比較すると、$GLOBALS には次の違いがあることがわかります。
##PHP $_SERVER は正確には配列であり、$_SERVER にはヘッダー情報が含まれます、パス、スクリプトの場所、その他の情報。この配列内の項目は Web サーバーによって作成されます。サーバーは一部を無視する場合があり、すべてのアイテムがすべてのサーバーで利用できるわけではありません。
次に、PHP $_SERVER の使用例を示します。
<?php //输出当前脚步的文件名 echo "<h3>输出当前脚步的文件名</h3>"; echo $_SERVER['PHP_SELF']; echo "<hr/>"; //当前脚步所在服务器的主机名 echo "<h3>当前脚步所在服务器的主机名</h3>"; echo $_SERVER['SERVER_NAME']; echo "<hr/>"; //当前请求头中 Host echo "<h3>当前请求头中 Host</h3>"; echo $_SERVER['HTTP_HOST']; echo "<hr/>"; //引导用户代理到当前页的前一页的地址(如果存在) echo "<h3>引导用户代理到当前页的前一页的地址(如果存在)</h3>"; echo $_SERVER['HTTP_REFERER']; echo "<hr/>"; //用来检查浏览页面的访问者在用什么操作系统 echo "<h3>用来检查浏览页面的访问者在用什么操作系统</h3>"; echo $_SERVER['HTTP_USER_AGENT']; echo "<hr/>"; //包含当前脚本的路径 echo "<h3>包含当前脚本的路径</h3>"; echo $_SERVER['SCRIPT_NAME']; ?>
結果の出力
$_SERVER['SERVER_ADDR']
---スクリプトが現在実行されているサーバーの IP アドレス。
$_SERVER['SERVER_NAME']
---スクリプトが現在実行されているサーバーのホスト名。
$_SERVER['SERVER_SOFTWARE']
---リクエストに応答するときにヘッダー情報で指定されるサーバー識別文字列。
$_SERVER['SERVER_PROTOCOL']
---ページをリクエストするときの通信プロトコルの名前とバージョン。
$_SERVER['REQUEST_METHOD']
---ページへのアクセスに使用されるリクエスト メソッド。
$_SERVER['REQUEST_TIME']
---リクエストが開始されたときのタイムスタンプ。 PHP 5.1.0 以降で利用可能です。
$_SERVER['QUERY_STRING']
---クエリ文字列 (クエリ文字列) がある場合は、それを使用してページにアクセスします。
$_SERVER['HTTP_ACCEPT']
---現在のリクエスト ヘッダー内の Accept: 項目の内容 (存在する場合)。
$_SERVER['HTTP_ACCEPT_CHARSET']
---現在のリクエスト ヘッダー内の Accept-Charset: 項目の内容 (存在する場合)。
$_SERVER['HTTP_HOST']
---現在のリクエスト ヘッダー内の Host: 項目の内容 (存在する場合)。
$_SERVER['HTTP_REFERER']
---ユーザー エージェントを現在のページの前のページのアドレスに誘導します (存在する場合)。
$_SERVER['HTTPS']
---スクリプトが HTTPS プロトコルを通じてアクセスされる場合、空ではない値が設定されます。
$_SERVER['REMOTE_ADDR']
---現在のページを閲覧しているユーザーの IP アドレス。
$_SERVER['REMOTE_HOST']
---現在のページを閲覧しているユーザーのホスト名。 DNS 逆引き解決は、ユーザーの REMOTE_ADDR には依存しません。
$_SERVER['REMOTE_PORT']
---Web サーバーに接続するためにユーザーのマシンで使用されるポート番号。
$_SERVER['SCRIPT_FILENAME']
---現在実行中のスクリプトの絶対パス。
$_SERVER['SERVER_ADMIN']
---この値は、Apache サーバー構成ファイルの SERVER_ADMIN パラメータを指定します。スクリプトが仮想ホスト上で実行されている場合、この値はその仮想ホストの値になります。
$_SERVER['SERVER_PORT']
---Web サーバーによって使用されるポート。デフォルト値は「80」です。 SSL セキュア接続を使用する場合、この値はユーザーが設定した HTTP ポートです。
$_SERVER['SERVER_SIGNATURE']
---サーバーのバージョンと仮想ホスト名を含む文字列。
$_SERVER['PATH_TRANSLATED']
---現在のスクリプトが配置されているファイル システムのベース パス (ドキュメント ルート ディレクトリではありません)。これは、サーバーが仮想パスから実際のパスにイメージ化された後の結果です。
$_SERVER['SCRIPT_NAME']
---現在のスクリプトのパスが含まれます。これは、ページがそれ自体を指す必要がある場合に便利です。 __FILE__ 定数には、現在のスクリプト (インクルード ファイルなど) の完全なパスとファイル名が含まれます。
$_SERVER['SCRIPT_URI']
---URI は、アクセスするページを指定するために使用されます。たとえば、「/index.html」です。
推奨学習: 「PHP ビデオ チュートリアル 」
以上がPHP スーパーグローバル変数を取得する方法 (整理および共有)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。