変数の種類を知る
関数の中で名前を決められ、値を利用される変数の事を
ローカル変数(local variable)といいます。
下記だと、$a,$b,$cはローカル変数です。
function func($a,$b){
$c = $a * $b;
}
仮引数もローカル変数です。これに対して、
関数の名前が決められ、値が利用される変数のことを
グローバル変数(global variable)といいます。
スコープのしくみを知る
ローカル変数は、その関数内でしか利用できません。
グローバル変数は関数の外でしか利用できません。
サンプルコードの実行結果はこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
<!doctype html> <html> <head> <meta charset="utf-8"> <title></title> <link rel="stylesheet" href="../style.css"> </head> <body> <?php //グローバル変数 $a = 100; echo "変数\$aの値{$a}<br>"; /* echo "変数\$bの値{$b}<br>"; echo "変数\$cの値{$c}<br>"; 他の関数内のローカル変数は使用不可 */ echo "<br><hr><br>"; testB(); testC(); function testB(){ $b = 10; echo "<br><hr><br>"; /* グローバル変数は$aは使用不可 echo "変数\$aの値{$a}<br>"; */ echo "変数\$bの値{$b}<br>"; /* 他の関数内のローカル変数は使用不可 echo "変数\$cの値{$c}<br>"; */ } function testC(){ $c = 50; echo "<br><hr><br>"; /* グローバル変数は$aは使用不可 echo "変数\$aの値{$a}<br>"; */ /* 他の関数内のローカル変数は使用不可 echo "変数\$bの値{$b}<br>"; */ echo "変数\$cの値{$c}<br>"; } ?> </body> </html> |
上記のサンプルコードでは以下の3つの変数が出てきます。
変数$a・・・・関数の外に宣言したグローバル変数
変数$b・・・・testB()関数内で宣言したローカル変数
変数$c・・・・testC()関数内で宣言したローカル変数
ローカル変数というのは、
変数の名前が使われた関数内だけで使うことができる
ものです。
ローカル変数$bはtestB()の外では使うことはできません。
ローカル変数$cはtestC()の外では使うことはできません。
グローバル変数とは
関数の外だけで使うことができる
ものです。グローバル変数は、testB(),testC()内では
使うことはできません。変数の名前が通用する範囲のことを
スコープ(scope)といいます。