グローバル変数とローカル変数

グローバル変数とローカル変数

関数などを作るときに注意しておきたいことが、変数の扱いの問題です。

変数を記述する場所によっては結果が変わってくることがあります。

ここで、グローバル変数とローカル変数の考え方を理解しましょう。

関数外の変数はグローバル変数、関数内の変数はローカル変数と呼ばれます。

グローバル変数
ファイル全体で使える変数のこと。 大域変数(たいいきへんすう)ともいう。
ローカル変数
限られた範囲でしか使えない変数のこと。 局所変数(きょくしょへんすう)ともいう。

この変数の違いは?

次のプログラムを見てみましょう。

関数があり、その中と外に同じ変数$textがありますが、この2つの変数は別物です。


$text = 'グローバル';
 
function box(){
    $text = 'ローカル';
}
 
box();
echo $text;//グローバルが出力される

実行すると「グローバル」が表示されます。

関数外の変数に「グローバル」、関数内の変数に別の文字列「ローカル」が格納されていますが、変数の値は上書きされません。

このように限られた範囲内でしか使えないのがローカル変数です。

グローバル変数を関数内でも使うには?

関数内でグローバル変数を使いたいものにglobalという命令を使います。


global $変数名;

例えば、先ほどと同じプログラムで関数内の$textにglobal命令して実行すると結果が変わります。


$text = 'グローバル';

function box(){
	global $text;
	$text = 'ローカル';
}
 
box();
echo $text;//ローカルが出力される

実行すると「ローカル」が表示されます。

コピーできました!