[PHP-users 5802] Re: PHPの変数の扱いについて

如月 悠希 php-users@php.gr.jp
Fri, 01 Mar 2002 19:33:00 +0900


如月悠希です。

それは変数のスコープが関連してきます。
関数の中の変数と、関数外部の変数は同じ名前の変数でも、まったく別の変数と
なっています。

たとえば、変数$conを関数Aで呼び出すと、たとえ関数外部で定義されていたと
しても、変数$conは未定義状態になっています。

ですので、今回の事例で説明しますと、
>Function Bにて、global $conとすると、$conは利用できない。
では、グローバル変数$con は中身が入っていないので利用できない状態になり
ます。

>Function A & B両方にて、global $conとすると、$conは利用できる。
では、関数Aにてグローバル変数$con に中身が定義され、関数Bからもグローバ
ル変数$con が使用できる状態になります。

$con = 'OK';
echo $con;
function A1() {
	global $con; // グローバル変数を使用することを宣言
	echo $con; // OKが出力
}
function A2() {
	echo $con; // $conの中身は定義されてないため何も出力されない。
}