ホームページ  >  記事  >  バックエンド開発  >  PHP変数スコープの例の詳細な説明

PHP変数スコープの例の詳細な説明

怪我咯
怪我咯オリジナル
2017-04-27 17:12:332282ブラウズ

変数スコープとは何ですか?

変数を使用する場合は、変数の定義規則に従う必要があります。変数は有効な範囲内で使用する必要があります。変数が制限された範囲を超えると、100 元の商品を購入できるのと同じです。そうなると100元は使えなくなります。 100ドルがこの変数に相当し、100ドル以内の範囲がスコープに相当します。次の表に示すように、

PHP 変数は、スコープの違いにより、ローカル変数、グローバル変数、静的変数に分けられます。内部定義された変数の場合、スコープはそれらが配置されている関数のスコープです

グローバル変数 キーワードを使用してグローバル変数 静的変数 を宣言し、関数呼び出しが終了した後に変数値を保持し、再びそのスコープに戻ります。元の値を引き続き使用できます。一般的な変数の場合、関数が呼び出された後、関数に格納されているデータ値はクリアされ、占有されていたメモリ空間は解放されます。静的変数を使用する場合は、まずキーワード を使用して変数を宣言し、定義する変数の前にキーワード static を置く必要があります 関数内で定義された変数のスコープは、変数が定義される関数です。関数の外に値を代入すると、まったく別の変数とみなされます。変数が宣言された関数を終了すると、変数とその対応する値はクリアされます。 この例は、関数内で割り当てられた変数 (ローカル変数) と関数の外で割り当てられた変数 (グローバル変数) を比較するために使用されます。 コード例は次のとおりです。 実行結果は次のとおりです。
すべての定義された関数の外側の変数の場合、スコープは PHP ファイル全体ですが、ユーザー定義内で使用することはできません機能。ユーザーがユーザー定義関数内でグローバル変数を使用できるようにするには、global
static
<?php
header("content-type:text/html;charset=utf-8");

$exam= "在函数外定义";                                     //声明全局变量

function add(){

    $exam="在函数内定义";                                //声明局部变量
    echo "在函数内输出的内容是:".$exam."<br/>";         //输出局部变量
}
add();                                                  //调用函数
echo "在函数外输出的内容是:".$exam;                    //输出全局变量


?>
静的変数はさまざまな場所で使用できます。たとえば、ブログで静的変数を使用して、ユーザーが訪問したり離れたりするたびに、現在の訪問者数を保持できます。静的変数をチャット ルームで使用して、ユーザーのチャット コンテンツを記録することもできます。

PHP変数スコープの例の詳細な説明

次の例では、静的変数と通常の変数を同時に使用して、2 つの関数の違いを確認します。 コードは次のとおりです。結果:

詳細な例の説明:PHP変数スコープの例の詳細な説明 カスタム関数 zdy() は 1 から 10 までの合計 10 個の数値を出力しますが、zdy1() 関数は 10 個の 1 を出力します。静的変数 $message と、zdy1() 内の関数 $message は通常の変数です。両方の変数は 0 に初期化され、2 つの関数はそれぞれ for ループを使用して呼び出されます。その結果、関数 zdy() は呼び出された後も静的変数 $message に値を保持します。静的変数の初期化は、関数が初めて呼び出されたときにのみ実行され、将来は初期化されなくなります。関数 zdy1() が呼び出された後、その変数 $message は元の値を失い、0 に再初期化されます。

グローバル変数はプログラム内のどこからでもアクセスできますが、ユーザー定義関数内では使用できません。ユーザーがユーザー定義関数内でグローバル変数を使用できるようにする場合は、global キーワードを使用してグローバル変数を宣言します

以下は、カスタム関数にグローバル変数を適用する場合とグローバル変数を適用しない場合の比較です。この例では、ユーザー定義関数 lxt() の 5 行目と 7 行目で 2 つのグローバル変数 $zy と $zyy が定義されていますが、プログラムの出力結果は $zyy

の値のみです。 「PHP Chinese website 」。グローバル変数 $zyy が 6 行目の global キーワードで宣言されているためです。 5 行目には出力はなく、$zy は 2 行目の $zy とは関係ありません。 コード例は次のとおりです。

<?php
function zdy0(){
    static $message = 0;           //初始化静态变量
    $message+=1;
    echo $message." ";
}
function zdy1(){
    $message = 0;           //初始化静态变量
    $message+=1;
    echo $message." ";
}
for ($i=0;$i<10;$i++)   zdy0();   //输出1~10
echo "<br>";
for ($i=0;$i<10;$i++)   zdy1(); //输出10个1
echo "<br>";
?>

コードの実行結果: PHP変数スコープの例の詳細な説明

これは、グローバル変数を適用するかどうかです。変数の違いについては、次のセクションで「

変数変数

」について説明します

おすすめの関連ビデオチュートリアル: 「php.cn Dugu Jiijian (4)-php ビデオチュートリアル」

変数のスコープ

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

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