PHP ローカル変数とグローバル変数(global)

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

 




△上に戻る