ホームページ  >  記事  >  バックエンド開発  >  PHP変数のスコープ

PHP変数のスコープ

angryTom
angryTomオリジナル
2019-08-22 10:56:025933ブラウズ

PHP変数のスコープ

スコープ、プログラミングの概念。一般に、プログラム コードの一部で使用される名前は常に有効/利用可能であるとは限らず、名前の利用可能性は制限されています。コード スコープは次のとおりです。この名前の範囲。以下に、PHP 変数のスコープを紹介します。

推奨チュートリアル: php 入門ビデオチュートリアル

#簡単に言うと 3 つの関数があります。ドメイン:

##ローカル スコープ グローバル スコープ スーパー グローバル スコープ

変数には次の 3 種類があります。

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

ローカル スコープとローカル変数

は関数内のスコープであり、定義変数はローカル変数 (仮パラメータを含むものもローカル変数です)。

ローカル変数は、その関数内でのみアクセスできます。

ローカル変数は関数呼び出しが終了すると自動的に破棄されます(関数の実行が終了し、実行空間も破棄されることがわかります)。

内部ローカル変数には関数の外部からアクセスできないことがわかります。

静的変数: 特別なローカル変数

意味:

関数内で、static キーワードを使用して変数を変更します。

形式:

  function  XXX( .... ){
                            static  $s1 = 10;  //此时,$s1就是静态变量
                           ......
                      }

静的変数の特性:

静的ローカル変数の値は、関数呼び出しの終了時に破棄されません。ただし、常に予約されます。

コントラスト: 非静的ローカル変数は関数呼び出しの最後に破棄されます。

つまり、関数が再度呼び出された場合、その変数(値)は引き続き使用できます。

グローバル スコープとグローバル変数

関数の外部スコープのスコープであり、その中で定義されている変数がグローバル変数です。

グローバル変数は、それが配置されているグローバル スコープ内でのみ直接使用 (アクセス) できます。

スーパー グローバル スコープとスーパー グローバル変数

ローカル スコープとグローバル スコープを含むスコープ全体。

スーパーグローバル変数は、すべてのスコープで使用 (アクセス) できます。

実際には、$_GET、$_POST、$_REQUEST など、限られた数の 10 個の事前定義システム変数のみがスーパー グローバル変数です。

したがって、システムの事前定義変数は、総称してスーパーグローバル変数とも呼ばれます。

#特別なスーパー グローバル変数: $GLOBALS

これは、自分で定義したすべてのグローバル変数を格納する配列でもあります。

各グローバル変数の変数名は、$GLOBALS 配列の単位です。

例:

グローバル スコープで次の変数を定義します:

$v1 = 1;   //这一行执行,就有了一个这个:$GLOBALS[‘v1’], 其值为1
$v2 = ‘abc’;  //这一行执行,就有了一个这个:$GLOBALS[‘v2’], 其值为’abc’
$v3 = true;  //这一行执行,就有了一个这个:$GLOBALS[‘v3’], 其值为true

関数:

これにより、ローカル スコープでグローバル スコープを使用できるようになります。スコープ変数。

デモは次のとおりです:

 $v1 = 10;  //全局变量
               function  func1(  ){
                          echo  $GLOBALS[‘v1’]; //输出10;
                          echo  $v1;    //报错:变量v1未定义
                          $s1 = $GLOBALS[‘v1’] * 5; //结果为50;
                         $s2 = $v1 * 5;    //报错:变量v1未定义
              }

特別なキーワード: global

関数:

ローカル スコープで使用され、変更しますグローバル変数と同じ名前のローカル変数。

現時点では、ローカル変数はグローバル変数の値を使用することもできます。実際、それらは変数の参照関係に似ています。

その機能は次のようになります: $GLOBALS

   $a = 10;
      function sum(){
          global $a ;  //全局变量的引用的别名
          $a++;
          $b = $a + 1;
          echo $b;
      } 
      sum(); //  12
      echo $a ; //  11

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

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