PHPのローカル変数とグローバル変数のサンプルです。
| 確認環境 ・PHP 7.1.8 |
目次
ローカル変数とグローバル変数
- ローカル変数は関数の中にある変数です。変数を宣言した関数内でのみ利用できます。
- グローバル変数は関数の外にある変数です。
- 変数が通用する範囲のことをスコープといいます。
- 別々の関数のローカル変数は同じ変数名でも可です。
- グローバル変数とローカル変数は同じ変数名でも可です。
コード
2行目は、グローバル変数です。
5行目は、ローカル変数です。
9行目は、グローバル変数の値を表示しています。
10行目は、5行目のローカル変数を指定していますが関数の中ではないので表示不可です。
<?php
$a = "123"; //グローバル変数
function test1(){
$b = "456"; //ローカル変数
return $b;
}
print $a; //123
//print $b; //表示不可
print test1(); //456
?>
関数内からグローバル変数を参照する
関数内からグローバル変数を参照するサンプルです。
1.関数内から直接参照する
2行目は、グローバル変数です。
6行目は、2行目のグローバル変数を参照しようとしますがPHPの仕様としてできません。
<?php
$a = "123"; //グローバル変数
function test1(){
return $a;
}
print $a; //123
//print test1(); //表示不可
?>
2.globalを使用する
2行目は、グローバル変数です。
5行目のglobalを使用するとグローバル変数を参照できるようになります。
<?php
$a = "123"; //グローバル変数
function test1(){
global $a;
return $a;
}
print $a; //123
print test1(); //123
?>
3.関数の引数として渡す
2行目は、グローバル変数です。
11行目は、関数の引数にグローバル変数の$aをセットして渡しています。
→$aの値を表示できます。
※4行目の仮引数の$aは、ローカル変数です。
<?php
$a = "123"; //グローバル変数
function test1($a){
//global $a;
return $a;
}
print $a; //123
print test1($a); //123
?>
リンク
以下は、PHPマニュアルの変数のスコープのリンクです。
http://php.net/manual/ja/language.variables.scope.php