グローバル変数とは、関数の外部で定義した変数。関数の内部でも外部でも、プログラム全体で呼び出せる。
関数の内部で呼び出すには、グローバル宣言するか、定義済み変数「$GLOBALS」を使用する必要がある。
グローバル変数を定義
関数の外部で定義する。
<?php
$var = 'サンプル'; // グローバル変数を定義
function sample() {
// 関数内部
}
?>
$var = 'サンプル'; // グローバル変数を定義
function sample() {
// 関数内部
}
?>
グローバル変数を関数の内部で呼び出す
グローバル変数を、関数の内部で呼び出すには、グローバル宣言するか、$GLOBALSを使用する必要がある。
グローバル宣言
<?php
$var = 'サンプル'; // グローバル変数を定義
function sample() {
global $var; // グローバル宣言
echo $var; // グローバル変数「$var」の値「サンプル」を出力
}
sample();
?>
$var = 'サンプル'; // グローバル変数を定義
function sample() {
global $var; // グローバル宣言
echo $var; // グローバル変数「$var」の値「サンプル」を出力
}
sample();
?>
↓↓↓出力結果↓↓↓
サンプル
$GLOBALSを使用
<?php
$var = 'サンプル'; // グローバル変数を定義
function sample() {
echo $GLOBALS[var]; // グローバル変数「$var」の値「サンプル」を出力
}
sample();
?>
$var = 'サンプル'; // グローバル変数を定義
function sample() {
echo $GLOBALS[var]; // グローバル変数「$var」の値「サンプル」を出力
}
sample();
?>
↓↓↓出力結果↓↓↓
サンプル
サンプル
関数内部でグローバル宣言しないグローバル変数は、その関数内部で呼び出せないことに注目。
<?php
$globalVarA = 'グローバル変数A'; // グローバル変数を定義
$globalVarB = 'グローバル変数B'; // グローバル変数を定義
function sample() {
global $globalVarA; // グローバル宣言
echo '<p>【関数内部から呼び出し】</p>';
echo '<p>関数内部でグローバル宣言したグローバル変数($globalVarA): ' . $globalVarA . '</p>';
echo '<p>関数内部でグローバル宣言しなかったグローバル変数($globalVarB): ' . $globalVarB . '</p>';
echo '<p>$GLOBALSを使用($GLOBALS[globalVarB]): ' . $GLOBALS[globalVarB] . '</p>';
}
sample();
echo '<p>【関数外部から呼び出し】</p>';
echo '<p>グローバル変数($globalVarA): ' . $globalVarA . '</p>';
echo '<p>グローバル変数($globalVarB): ' . $globalVarB . '</p>';
echo '<p>$GLOBALSを使用($GLOBALS[globalVarB]): ' . $GLOBALS[globalVarB] . '</p>';
?>
$globalVarA = 'グローバル変数A'; // グローバル変数を定義
$globalVarB = 'グローバル変数B'; // グローバル変数を定義
function sample() {
global $globalVarA; // グローバル宣言
echo '<p>【関数内部から呼び出し】</p>';
echo '<p>関数内部でグローバル宣言したグローバル変数($globalVarA): ' . $globalVarA . '</p>';
echo '<p>関数内部でグローバル宣言しなかったグローバル変数($globalVarB): ' . $globalVarB . '</p>';
echo '<p>$GLOBALSを使用($GLOBALS[globalVarB]): ' . $GLOBALS[globalVarB] . '</p>';
}
sample();
echo '<p>【関数外部から呼び出し】</p>';
echo '<p>グローバル変数($globalVarA): ' . $globalVarA . '</p>';
echo '<p>グローバル変数($globalVarB): ' . $globalVarB . '</p>';
echo '<p>$GLOBALSを使用($GLOBALS[globalVarB]): ' . $GLOBALS[globalVarB] . '</p>';
?>
↓↓↓出力結果↓↓↓
【関数内部から呼び出し】
関数内部でグローバル宣言したグローバル変数($globalVarA): グローバル変数A
関数内部でグローバル宣言しなかったグローバル変数($globalVarB):
$GLOBALSを使用($GLOBALS[globalVarB]): グローバル変数B
【関数外部から呼び出し】
グローバル変数($globalVarA): グローバル変数A
グローバル変数($globalVarB): グローバル変数B
$GLOBALSを使用($GLOBALS[globalVarB]): グローバル変数B
関数内部でグローバル宣言したグローバル変数($globalVarA): グローバル変数A
関数内部でグローバル宣言しなかったグローバル変数($globalVarB):
$GLOBALSを使用($GLOBALS[globalVarB]): グローバル変数B
【関数外部から呼び出し】
グローバル変数($globalVarA): グローバル変数A
グローバル変数($globalVarB): グローバル変数B
$GLOBALSを使用($GLOBALS[globalVarB]): グローバル変数B