変数
変数 = variable
PHPにおける変数とは、
メモリ上にスクリプトの処理に利用する 値 や 計算式などの処理 を格納(記憶)するための領域。
スクリプトの実行中に変数の値を変えることができる。
対して定数はスクリプトの実行中に値を変えることは不可。
PHP変数の命名ルール
1,変数名の前にはドル記号($)を付ける。
2,変数名の1文字目は英字又はアンダースコアを使う。
3,2文字目以降は英数字、アンダースコア。
4,英字の大文字と小文字は区別される。
代入
代入とは変数に値を格納すること。
構文
$変数名 = 値;
変数の呼び出し
方法
$変数名を記載
例)
$a = ‘こんにちは’;
echo $a;
結果
ブラウザー上に こんにちは と表示される。
変数のスコープ(有効範囲)
ローカルスコープ(関数レベル) → 関数の中の変数は関数の中だけ有効。
グローバルスコープ → 関数の外で定義してある変数。
※関数の外の変数と変数名が同じでもメモリは別の変数として認識する。
ローカル変数
ローカルスコープを持つ変数。
関数の中で定義してある変数。
※関数内において特に定義しないとローカル変数のみしか使用できない。
グローバル変数を使用する場合は別途定義が必要。
コード例 ローカル変数
<?php $var = 'グローバル変数です。'; function scopeA(){ echo $var; } scopeA(); ?>
出力Notice: Undefined variable:
と表示され変数は定義されていない状態になっている。
つまり同じ変数名でも関数の外で定義されている変数は使用できない。
ローカル変数を設定した場合。
<?php $var = 'グローバル変数です。'; function scopeA(){ $var = 'ローカル変数です。'; echo $var; } scopeA(); ?>
グローバル変数
グローバルスコープを持つ変数。
関数の外で定義してある変数。
global 関数内でグローバル変数を使用する場合
構文//関数内
global $変数名;
コード例 global
<?php $var = 'グローバル変数です。'; function scopeA(){ global $var; echo $var; } scopeA(); ?>
$GLOBALS 関数内でスーパーグローバル変数を使用する場合
$GLOBALSとは
グローバルスコープで使用できる変数を参照できる。
$GLOBALSは連想配列。
変数名が配列のキーとなる。
ローカルスコープ+グローバルスコープ
構文//関数内
$GLOBALS[“変数名”]
コード例 $GLOBALS
<?php $var = 'グローバル変数です。'; function scopeA(){ echo $GLOBALS['var']; } scopeA(); ?>
※globalとの違い
$varとして関数内で使用しても認識されないので注意。
$GLOBALS[‘var’]で値を参照するだけ。
echo $var; は不可。
スタティック変数
構文static $変数名 = 初期値;
変数の参照渡し
関数の引数(同一名称の変数)に&(アンパサンド)を付ける。
関数内の同一名称の変数が、関数外の同一名称の変数の値を参照する。
関数内の変数の値に関数外の変数の値を書き換える事ができる。