スコープとは?
状態:未整理
閲覧数:8,053
投稿日:2010-04-23
更新日:2016-01-03
変数を参照することが出来る範囲
・関数外で定義された変数「グローバル変数」-「グローバルスコープ」に存在。
・関数内で定義された変数「ローカル変数」-「ローカルスコープ」に存在(変数の参照範囲は制限されている)。
■関数内で関数外の変数(グローバル変数)を参照する方法
▼1.関数内で「修正子global」を利用。変数をグローバル変数として宣言することにより、参照可能となる
▼2.「スーパーグローバル変数(PHP側で自動的に定義されるハッシュ)$GLOBALS[" グローバル変数名]」で参照
また、「修正子global」で宣言する際、「,(コンマ)」で区切って複数の変数を同時に宣言することも出来る。
また、元々グローバルに存在しない変数を宣言して、その関数がコール(実行)された時点で定義させることも出来る。
▼結果
/demo/global_test.html
・関数外で定義された変数「グローバル変数」-「グローバルスコープ」に存在。
・関数内で定義された変数「ローカル変数」-「ローカルスコープ」に存在(変数の参照範囲は制限されている)。
■関数内で関数外の変数(グローバル変数)を参照する方法
▼1.関数内で「修正子global」を利用。変数をグローバル変数として宣言することにより、参照可能となる
▼2.「スーパーグローバル変数(PHP側で自動的に定義されるハッシュ)$GLOBALS[" グローバル変数名]」で参照
また、「修正子global」で宣言する際、「,(コンマ)」で区切って複数の変数を同時に宣言することも出来る。
また、元々グローバルに存在しない変数を宣言して、その関数がコール(実行)された時点で定義させることも出来る。
$red = 100;//「変数$red」を定義して100を代入
$blue = 150;
$yellow = 5000;
function test(){//「関数test()」を定義
global $red,$black;
$red = 200;
$GLOBALS["blue] = 250;
$yellow = 300;
$green = 900000;
}
echo test();//「関数test()」を実行し、その返り値を出力
echo "
";//「
」を出力
echo $red;//「変数$red」の値を出力
echo "
";//「
」を出力
echo $blue;//「変数$blue」の値を出力
echo "
";//「
」を出力
echo $yellow;//「変数$yellow」の値を出力
echo "
";//「
」を出力
echo $green;//「変数$green」の値を出力
▼結果
/demo/global_test.html