PHP 基礎講座の備忘録(変数のスコープ)
さて今回からPHPの基礎編としまして
PHPの基礎構文からPHPによる簡単なアプリケーションの作成までの口座を書き記し、自身の基盤となるように残しておきます
私自身WordPressをさわっていて
WordPressにてわからないことがあっても、ググれば基本的な機能はほぼほぼ実装できるのですがもっと高度な内容であったりすると根本的なエビデンスの知識は必須だと考えました。
例えば次のような足し算をする関数を定義します
function sum($a,$b) {
$c = $a + $b;
return $c;
}
$c = 0;
$x = sum(15,19);
echo $c;
$cは関数で定義された変数ですが、定義された後に同じ名前の変数に0を代入されています
この場合echo $c;を行うとどうなるでしょうか?
答えは「0」が返ってきます
変数には有効範囲(スコープ)という概念があり、その種類としては、
- ローカルスコープ
- グローバルスコープ
- スーパーグローバルスコープ
の3つがあります
ローカルスコープ
これは上記の例にあるユーザー定義関数の中で使用される範囲です。
つまり定義された中でしか有効ではありません
グローバルスコープ
こちらはつまりローカルスコープの外
上記の例で言うところの「0」を代入した範囲を指します
変数というのはあだ名のような通り名なのでその関数ごとの範囲でローカルスコープというものは存在します
そしてこのグローバル変数をPHPの関数内で使用する場合
globalキーワードで使用することを宣言する必要があります
スーパーグローバルスコープ
先に説明したglobal宣言の必要がない変数がスーパーグローバルスコープの範囲となります
PHPそのもので定義済みとなっておりこの変数はユーザーが追加することは出来ません。
内容までは割愛しますが9種類からなる連想配列のことで
主にWEBサーバーから受け取った値が格納されています。
コメントをお待ちしております