ローカル変数とグローバル変数
変数の存在にはライフサイクルがあります。それを小さな関数内に存在させることも、プログラム全体に存在させることもできます。通常の状況で宣言された変数の場合、ローカル変数と呼ばれます。ローカル変数は現在のプログラム セグメントにのみ存在できますが、$globals を使用して宣言された変数は、現在のページのプログラム全体で有効になります。
例:
クリップボードにコピー引用コンテンツ: [www.bkjia.com] リーリー
このプロセス中に、
2行目から3行目では、2つの変数aとbを作成し、それぞれ値1と2を割り当てます。
3 行目から 7 行目では、sum 内の変数 a と b を加算し、加算された値を b に代入する自己加算関数 sum() を定義します。
8 行目では sum 関数を呼び出しています。
9 行目では echo を使用して b の値を出力します。
このとき Web ページに出力される値は 3 であるはずだと思う人もいるかもしれませんが、実行してみると、値は b の元の値である 2 のままであることがわかります。これはローカル変数が原因で、2 行目から 3 行目で宣言された変数は sum() 関数では使用できません。つまり、sum 関数で使用される a と b は 2 行目から 3 行目の a と b と同じではありません。 3. 名前が同じであるだけで、互いに何の関係もありません。したがって、最終出力の b は、3 行目の b の値になります。
ただし、その場合は、プログラムを次のスタイルに変更します:
クリップボードにコピー引用コンテンツ: [www.bkjia.com]
<?php <?php<br /> $a=1;<br> $b=2;<br> 関数 sum()<br> {<br> グローバル $a,$b;<br> $b=$a+$b;<br> }<br> 合計();<br> エコー $b;<br> ?><br> <pre class="brush:php;toolbar:false"><br> <br><br>
sum 関数では、変数 a と b にグローバル修飾子を追加しました。このとき、a と b は関数の外の a と b との関係を確立しており、それらは同じ変数であることがわかります。したがって、このプログラムを実行すると、結果は 3 になります。したがって、グローバル変数を宣言するときは、グローバル変数をローカルで使用するとき (この場合は関数 sum 内で) に修飾子 global を追加するだけで、外部値を継承できるようになり、ローカル変数ではなくなります。