#そもそもスコープとは?
スコープ(Scope)は「範囲」という意味がある。
そのため、PHPの変数のスコープとは変数が適応できる範囲という意味
#ローカルスコープ
変数を定義している関数内でしか使えない変数のスコープ
関数の外で定義した変数を関数の中で使ったり、逆に関数の中で定義した変数を関数の外で使ったりすることはできない
function localScope()
{
$localValue = "これはローカルスコープの変数です。";
return $localValue ;
}
echo $localValue ;
echo localScope();
// 実行結果
> //echo $localValue;の実行結果
>これはローカルスコープの変数です。 //echo localScope();の実行結果
echo $localValue
の実行結果がないのは、$localValue
を定義している関数の外で$localValue
を使っているから!
#グローバルスコープ
関数内で定義されていない変数のスコープ
関数の外で定義した変数にglobal
を使うことで、関数の中でも使えるような変数になる。
$globalValue = "これはグローバルスコープの変数です。";
function globalScope()
{
global $globalValue; // globalキーワードを使用
return $globalValue;
}
echo globalScope();
// 実行結果
>これはグローバルスコープの変数です。 //echo globalScope();の実行結果
スーパーグローバルスコープ
定義する必要のない、すべてのスコープに対応する変数のこと。
もともとPHPに組み込んである変数で9種類ある。
スーパーグローバル変数については別記事にまとめる