ホームページ  >  記事  >  バックエンド開発  >  PHPでのglobalキーワードと$GLOBALSの使用法

PHPでのglobalキーワードと$GLOBALSの使用法

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

まず、コードを見てみましょう

<?php
$a  =  1 ;  /* global scope */

function  Test ()
{
    echo  $a ;  /* reference to local scope variable */
}

Test ();
?>

このスクリプトには出力はありません。これは、echo ステートメントが変数 $a のローカル バージョンを参照しており、このスコープでは値が割り当てられていないためです。 PHP のグローバル変数は C 言語とは少し異なることに気づくかもしれません。C 言語では、ローカル変数によってオーバーライドされない限り、グローバル変数は関数内で自動的に有効になります。これにより問題が発生する可能性があり、誰かが誤ってグローバル変数を変更してしまう可能性があります。 PHP のグローバル変数を関数で使用する場合は、グローバル変数を宣言する必要があります。

グローバルキーワード

まず、グローバルの使用例です。コードは次のとおりです。

<?php
$a  =  1 ;
$b  =  2 ;

function  Sum ()
{
    global  $a ,  $b ;

     $b  =  $a  +  $b ;
}

Sum ();
echo  $b ;
?>

上記のスクリプトの出力は「3」になります。グローバル変数 $a および $b が関数内で宣言されると、いずれかの変数へのすべての参照はそのグローバル バージョンを指すようになります。 PHP では、関数が宣言できるグローバル変数の最大数に制限はありません。

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

例 #2 グローバルの代わりに $GLOBALS を使用します。コードは次のとおりです:

<?php
$a  =  1 ;
$b  =  2 ;

function  Sum ()
{
     $GLOBALS [ &#39;b&#39; ] =  $GLOBALS [ &#39;a&#39; ] +  $GLOBALS [ &#39;b&#39; ];
}

Sum ();
echo  $b ;
?>

$GLOBALS は連想配列で、各変数は要素であり、キー名は 変数に対応しますname、値は変数の内容に対応します。 $GLOBALS がグローバル スコープに存在する理由は、$GLOBALS が スーパーグローバル変数 であるためです。次の例は、スーパーグローバル変数の有用性を示しています:

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

<?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; ];
}
?>

以上がPHPでのglobalキーワードと$GLOBALSの使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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