解 説

変数を使う場合に、もし関数を使用しないならどこで変数を宣言しても、その変数の下であればどこでも使用することができます。
けれども、関数を使用した場合は決まり事があります。
関数の中で宣言した変数はその関数内だけでしか使用できません。また、注意すべき点として関数の外にある変数を直接読み込むこともできません。この後者の決まり事につまづく事が多いですからしっかりと覚えておきましょう。

関数内だけで使えるローカル変数

関数の中で宣言した変数は関数の中で使用します。
サンプル
PHPコード

次のように書くとエラーになります。
サンプル
PHPコード

グローバル変数の使い方

関数の外で宣言された変数はグローバル変数といいます。
グローバル変数を関数内でそのまま読み込むことはできません。次の例はグローバル変数を関数に読み込んでエラーになる例です。

サンプル
PHPコード

グローバル変数を関数に読み込む方法

グローバル変数を関数内で使用するにはglobalキーワードを使用します。
そうすることでグローバル変数をローカルスコープに持ち込むことが可能となり、関数内で使用することができるようになります。

サンプル
PHPコード

もっと具体的な例として入力ボックスの値をsubmitして得た値を表示する仕組みをみてみましょう。

サンプル
PHPコード

次の例のように、globalキーワードを使用しなかった例はエラーになります。

エラーになるサンプル
PHPコード

スーパーグローバル変数とは

スーパーグローバル変数は、globalキーワードを使用せずに、どこからでも呼び出すことが可能な特殊なグローバル変数です。
$_GETや$_POSTなどもスーパーグローバル変数で、どこからでもそのまま呼び出すことができます。

関数内に直接$_POSTを読み込むサンプルです。

サンプル
PHPコード