PHPのグローバル変数とは?スコープと使い方をわかりやすく解説
PHPでは、関数の外で宣言された変数はグローバル変数と呼ばれます。
グローバル変数はスクリプト全体で利用できるように見えますが、関数の中では直接参照できないため、適切な使い方を理解しておくことが重要です。
グローバル変数とは?
グローバル変数とは、関数の外側(スクリプトのトップレベル)で定義された変数のことです。
例:
$message = "こんにちは";
function showMessage() {
echo $message; // エラーになる
}
showMessage();
このままでは関数の中から$message
にアクセスできません。
関数内でグローバル変数を使うには
@ globalキーワードを使う
global
を使うと、関数内でグローバル変数を利用できます。
$count = 10;
function increment() {
global $count;
$count++;
}
increment();
echo $count; // 11
A $GLOBALS配列を使う
$GLOBALS
はすべてのグローバル変数を連想配列として管理しているスーパーグローバル変数です。
$name = "太郎";
function greet() {
echo "こんにちは、" . $GLOBALS["name"] . "さん";
}
greet(); // こんにちは、太郎さん
グローバル変数の注意点
- スコープ(有効範囲)が広すぎてバグの原因になりやすい
- 大規模なプログラムでは予期せぬ上書きのリスクがある
- できるだけ関数・クラスの中に変数を閉じ込める設計(ローカル変数推奨)
使いどころ
どうしても全体で共有する必要がある値(設定情報、定数的なデータなど)に使うケースはありますが、
できるだけ引数や戻り値で値をやり取りするように設計した方が安全です。
まとめ
- グローバル変数は関数の外で定義された変数
- 関数内では
global
または $GLOBALS
を使って参照する
- スコープの広さに注意し、乱用は避ける
- 可能な限りローカル変数・引数を使って設計するのが推奨
グローバル変数は便利ですが、扱い方を間違えると保守性の低いコードになってしまいます。
目的に応じて適切に使い分け、読みやすく安全なコードを心がけましょう。