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