プログラミング初心向けにPHP変数の使い方について解説する
基礎的なところから紹介する。
変数とは
PHPプログラムを書くとき、様々なデータを使います。
データの保存と取得にはデータのアドレスがが必要となります。
変数はデータのアドレスです。
変数定義のルール
変数名を付ける際、次のようなルールがあります。
・必ず$から始まる、$以降の文字は変数名
・変数名は一つ目の文字はアルファベット、_(アンダースコア)
・変数名は一つ目の文字は数字を使えない($name111 〇,$111name ×)
・変数名は使えるのは半角英数字(A-z、0-9)、_(アンダースコア)
・変数名は大文字小文字が区別される
変数の使い
PHPでは変数を定義するコマンドが存在しません。
変数に値を代入するとき、変数を定義される。
使用例:
$outMsg=”Hello World!”; # 変数を定義
echo $outMsg; # 変数の値を出力
?>
※echoは関数ではないので、引数の文字列を括弧で囲む必要はありません。
結果は「Hello World!」を出力する。
変数のスコープ
変数はスクリプトの任意のところで定義できます。
変数のスコープは変数を使える範囲です。
ローカルスコープとグローバルスコープ
関数の外部で定義した変数はグローバルスコープ変数です。
グローバルスコープ変数の場合、関数の外部で使える。
関数の内部で定義した変数はローカルスコープ変数です。
ローカルスコープ変数の場合、関数の内部で使える。
使用例:
$x=5; //グローバルスコープ変数
function myTest() {
$y=10; //ローカルスコープ変数
echo “<p>関数内部の変数:</p>”;
echo “変数xの値: $x”;
echo “<br>”; //改行コードを出力する
echo “変数yの値: $y”;
}
myTest();
echo “<p>関数外部の変数:</p>”;
echo “変数xの値: $x”;
echo “<br>”; //改行コードを出力する
echo “変数yの値: $y”;
?>
結果:
解析:
変数$x,$y,関数myTest()について、説明します。
$xは関数の外部で定義したため、グローバルスコープ変数となり、関数内部でアクセスする場合、エラーとなります。
$yは関数の内部で定義したため、ローカルスコープ変数となり、関数の外部でアクセスする場合、エラーとなります。
globalキーワード
変数を定義する前、globalキーワードを指定すると、関数内部でグローバルスコープ変数をアクセスできる。
使用例:
$x=5;
$y=10;
function myTest() {
global $x,$y; //関数内部でグローバルスコープ変数をアクセスするため、globalキーワードを指定する
$y=$x+$y;
}
myTest();
echo $y;
?>
globalキーワードを指定しないで関数内部でグローバルスコープ変数をアクセスする方法もあります。
PHPではグローバルスコープ変数を保存する配列「$GLOBALS[index]」があります。
使用例:
$x=5;
$y=10;
function myTest() {
$GLOBALS[‘y’]=$GLOBALS[‘x’]+$GLOBALS[‘y’];
}
myTest();
echo $y; # 15を出力する
?>
staticキーワード
関数の実行が完了したら、関数内部の変数が削除される。
しかし、関数内部の変数を削除したくない場合、staticキーワードを使用する。
使用例:
function myTest(){
static $x=0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>