PHPの変数はドル記号($)で始まり英数字とアンダースコア(_)の組み合わせで構成されます。
ドル記号($)の後は英字またはアンダースコア(_)である必要があります。(数字ではいけません。)
英字の大文字と小文字は区別します。
以下に例を示します。
ソースコード
$abc // 変数として有効
$Abc // 変数として有効($abc とは区別される)
$_123 // 変数として有効
$123 // 変数として無効(数字で始まっている)
$a-bc // 変数として無効( - は使えない)
変数に値を代入するには代入演算子(=)を使います。
ソースコード
$a = 10;
print \"$a<br>\";
参照渡しによる代入
通常、変数を代入すると値を直接渡すため代入した後に元の変数の値を変えても代入された変数の値は変わりません。
しかし、$変数1 = &$変数2; というふうに & をつけて代入すると参照渡しで代入されます。
ソースコード
$a = 10;
$b = $a;
$c = &$a; // 参照渡しによる代入
$a = 20;
print \"$a = $a<br>\"; // $a の値は当然 20
print \"$b = $b<br>\"; // $b の値は 10 のまま
print \"$c = $c<br>\"; // $c の値は 20 になっている
出力結果
$a = 20
$b = 10
$c = 20
$b は 10 のままですが、$c は参照渡しで代入されたため 20 になります。
変数の内容の表示とエスケープシーケンス
print文の2重引用符(\")の中に変数名を書くと変数の値が表示されますが、引用符(')の中では変数名がそのまま表示されます。
ソースコード
$a = 10;
print \"変数 $a の値は $a です。<br>\";
print '変数 $a の値は $a です。<br>';
出力結果
変数 10 の値は 10 です。
変数 $a の値は $a です。
2重引用符(\")の中では $a がその値である 10 として表示されます。
引用符(')の中では変数名($a)がそのまま表示されています。
では、「変数 $a の値は 10 です。」と表示させるにはどうするか。
それは、$ の前にバックスラッシュ(Windowsでは \ )をつけます。
(これをエスケープシーケンスといいます。)
ソースコード
$a = 10;
print \"変数 \$a の値は $a です。<br>\";
出力結果
変数 $a の値は 10 です。
エスケープシーケンスにはこれ以外に、
- \n (ラインフィード:UNIXの改行文字)
- \t (水平タブ)
- \" (2重引用符)
などがあります。 |