ローカル変数とグローバル変数
PHPの変数にはローカル変数とグローバル変数の2種類がある。
その2つの違いを解説していきたい。
ローカル変数
ローカル変数とは、決められた範囲内(ローカルスコープ)でしか扱えない変数のことを言う。
ローカル変数
<?php
function user() {
$name = 'Qiita 太郎'; // ローカル変数
}
user();
echo $name; // エラー表示
?>
Undefined variable という警告が表示されてしまった。
なぜかというと、関数user()内で定義されている変数nameと、関数外で定義されている変数nameは全くの別物として扱われているためである。
関数user()内で定義されている変数nameのことをローカル変数と呼ぶ。
グローバル変数
グローバル変数とは、PHPのファイル全体(グローバルスコープ)で扱うことのできる変数のことを言う。
グローバル変数を定義し関数で使う際は、変数の前にglobalという宣言をしなければならない。また、関数の内部でグローバルとして宣言する必要がある。
グローバル変数
<?php
$name = 'Qitta 太郎' // グローバル変数
function user(){
global $name;
echo $name;
}
user(); // 'Qitta 太郎'が表示される
?>
警告が出ることなく、変数の値を表示することができる。
まとめ
グローバル変数とは、複数の関数から使用できる変数のことを言います(globalで宣言する)。 これに対して、ひとつの関数内でのみ使用できる変数のことをローカル変数といいます。 グローバル変数はどの関数のブロック内にも含まれない。 ローカル変数はある関数のブロック内で定義されます。
参照
著者: E.R (株式会社ウィズツーワン)