ホームページ  >  記事  >  バックエンド開発  >  PHPのグローバルグローバル変数の使い方

PHPのグローバルグローバル変数の使い方

怪我咯
怪我咯オリジナル
2017-06-19 16:16:433875ブラウズ

グローバル変数と「グローバル」キーワード

PHP はデフォルトでいくつかの「スーパーグローバル」変数を定義しており、これらの変数は自動的にグローバル化され、$_GET や $_REQUEST など、 プログラム内のどこからでも呼び出すことができます。通常、これらの変数はデータまたはその他の外部データから取得されますが、これらの変数は基本的に書き込み可能ではないため、通常は使用しても問題は発生しません。 ただし、独自のグローバル変数を使用することもできます。キーワード「global」を使用すると、グローバル データを 関数のローカル スコープにインポートできます。 「変数の使用範囲」がわからない場合は、PHP マニュアル の関連する手順を参照してください。 「global」キーワードを使用したデモ例を次に示します:

<?php
$my_var = &#39;Hello World&#39;;
test_global();
function test_global() {
    // Now in local scope
     // the $my_var variable doesn&#39;t exist
     // Produces error: "Undefined variable: my_var"
    echo $my_var;
    // Now let&#39;s important the variable
    global $my_var;
    // Works:
    echo $my_var;
}
?>

上の例でわかるように、「global」キーワードはグローバル変数をインポートするために使用されます。うまく機能し、シンプルであるように見えますが、グローバル データを定義するために「global」キーワードを使用することをなぜ心配するのでしょうか?

業界に不慣れな方にグローバル変数の使用法を説明しましょう。この名詞の「グローバル」という 2 つの単語から、この変数がどこでも使用できることがわかります。まず例を見てみましょう。 :

<?php
$a = 1;
$b = 2;
function Sum()
{
    global $a, $b; //在里面声明为全局变量
    $b = $a + $b;
}
Sum();
echo $b;
?>
結果: 3グローバル変数globalが無い場合、メソッド内で$aと$bの値を取得できないため、メソッド内で外部変数を使用したい場合は、この変数を最初にグローバル変数として宣言しておくと、非常に便利です。

<?PHP
      $w3sky = 1;
      $w3sky2 = 2;
function Sum()
       {
       global $w3sky, $w3sky2;$w3sky2 = $w3sky + $w3sky2;
       }Sum();
       echo $w3sky2;
       ?>

上記のスクリプトの出力は「3」になります。グローバル変数 $w3sky と $w3sky2 は関数内で宣言されており、任意の変数のすべての参照変数はグローバル変数を指します。 PHP では、関数が宣言できるグローバル変数の最大数に制限はありません。

グローバル スコープ内の変数にアクセスする 2 番目の方法は、特別な PHP カスタム $GLOBALS 配列を使用することです。前の例

は次のように記述できます:

例 $GLOBALS を使用して global

<?PHP
       $w3sky = 1;
       $w3sky2 = 2;function Sum()
       {
       $GLOBALS[&#39;w3sky&#39;] = $GLOBALS[&#39;w3sky&#39;] + $GLOBALS[&#39;w3sky2&#39;];
       }Sum();
       echo $w3sky2;
       ?>
を置き換えます $GLOBALS 配列では、各変数は要素であり、キー名は変数名

に対応し、値は対応します変数の内容

。 $GLOBALS はスーパーグローバル変数であるため、$GLOBALS はグローバル スコープ内に存在します。次の例は、スーパー グローバル変数の使用方法を示しています。

スーパー グローバル変数とスコープの例を示す例

<?PHP
       function test_global()
       {
       // 大多数的预定义变量并不 "super",它们需要用 &#39;global&#39; 关键字来使它们在函
数的本地区域中有效。
       global $HTTP_POST_VARS;echo $HTTP_POST_VARS[&#39;name&#39;];// Superglobals 在任何
范围内都有效,它们并不需要 &#39;global&#39; 声明。Superglobals 是在 PHP 4.1.0 引入的。
       echo $_POST[&#39;name&#39;];
       }
       ?>

global つまり、ファイル内でグローバル $db として宣言している限り、その宣言の下にあります。これで、この $db

<?php
function SayMyABCs2()
{
     global $count;
     while($count<10)
        {
           print(chr(ord(&#39;A&#39;)+$count));
           $count=$count+1; 
        }
     print("<br>Now I know $count letters<br>");
}
$count=0;
SayMyABCs2();
$count=$count+1;
print("Now I&#39;ve made $count function call(s).<br>");
SayMyABCs2();
$count=$count+1;
print("Now I&#39;ve made $count function call(s).<br>");
?>
出力を参照できるようになります:
ABCDEFGHIJ         //第一次循环依次打印10个大写字母
Now I know 10 letters
Now I&#39;ve made 11 function call(s).       //第二次由于条件大于10则不执行循环

Now I know 11 letters
Now I&#39;ve made 12 function call(s).
変数のグローバル宣言により、$count 変数は 1 つだけになり、
が呼び出されたときに関数の内部と外部の両方でインクリメントされます。 2 回目 SayMyABCs2() のとき、$count はすでに 11 なので、文字を印刷するループにはまったく入りません。関数 内で定義された

変数のスコープは、デフォルトではその関数に制限されます。グローバル宣言を使用すると、変数名を環境内と同じ名前にする必要があることを PHP に通知できます。機能の外にあります。宣言形式: global,

$count1,$count2,...,$countn; 一方、

global は、特に PHP がコードを実行する前にそれぞれに関連付けることができるいくつかの変数を提供するため便利です

ページ上では、関数がこれらの変数を参照できるようになり、呼び出されるたびに変数を関数にパラメータとして渡す


というトラブルが解消されます

以上がPHPのグローバルグローバル変数の使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。