変数

概要

	
変数とは値を保存するためのメモリ領域のことで、
参考書や参考サイトでは、箱や場所に例えられることがあります。
この変数の中に数や文字を保存して計算などに使用します。

変数名

変数には必ず名前をつける必要があります。
そうしないと、プログラム中にどの変数に値を覚えさせたか
分からなくなるからです。
この変数に付ける名前のことを「変数名」と呼びます。
変数名は自由につけられますが、名前だけで保存している値が分かるのが
理想ですのでしっかりと考えてつけてください。

変数名のルール

変数名は半角、全角関係なく使用することがで可能ですが
「:」や「+」の記号を使用することはできません。

書式

変数を使うには変数名の前に「$」をつけます。
変数の書式
書式 具体例
$変数名 $val;
$val = 10;

代入

代入とは変数に値を保存させる方法のことです。
「=」記号を使用し、「$変数名 = 値」と書くことで値が変数に保存されます。

下のコードは変数valに10を代入しています。
代入した行以降、valは値を変えない限り「10」として使用できます。

$val = 10;
echo $val;

出力結果
php_0012
php_0012

変数には「整数型」や「浮動小数点型」など、
「」という変数の値を表す情報を持っています。

数値型

数値型」は数を扱う型です。
「整数型」と「浮動小数点型」の2種類があります。

数値型
型名 型の種類 説明
整数型 int 10や-100などの整数の値を扱う型
浮動小数点型 float
double
10.0、99.99などの実数を扱う型

文字列型(string)

文字列型」は"あいう"、"PHP"などの文字列を扱えます。
文字列は文字を「""」か「''」のいずれかで囲います。

""と''の違い

""と''の違いは文字内の変数の扱いが異なることです。
""では変数はその変数が入っている値に変換されますが、
''では変数名がそのまま表示されます。

以下のコードは変数$strに"abc"を代入して、その変数を出力しています。
$str = "abc";
echo "$str<br>";
echo '$str';

出力結果
php_0006
php_0006

文字結合

PHPの文字列は「.」を使用することで簡単に結合することができます。

以下のコードは文字列「abc」と「def」を結合しています。
$str = "abc" . "def";
echo $str;

出力結果
php_0007
php_0007

注意点

""では「""」、「''」が文字列中には使用できません。
使用する場合には「\」をつける必要があります。

論理型(bool)

論理型は真(true)か偽(false)のどちらかの値のことです。
この論理型を使用してif文などの条件式が動作します。
値を使用する際はtrue、falseを代入しますが、
全て大文字の「TRUE」「FALSE」でも問題ありません。

NULL型

NULL型は変数が値を持っていいないことを証明するために使用する値です。
NULL型の値はNULLしかありません。
こちらも全て大文字の「NULL」、全て小文字の「null」のどちらでも使用可能です。

NULL型の注意点

「0」でもNULLと同等の扱いをする言語もありますが、
PHPでは0とNULLは別の値ですので注意して下さい。

変数の特性

PHPの変数はデータ型の種類を持っていますが、代入時はデータ型に関係なく代入可能です。

以下の例は変数valに数値と文字列を代入しても
問題なく動作をする証明を行ったコードです。
$val = 10;
echo "val = $val<br>";
$val = "abcdef";
echo "val = $val<br>";

出力結果
php_0010
php_0010

注意点

変数は「どの型の値が入っているかわからない」という点で注意が必要です。
この注意を怠るとバグの原因になります。
例えば数値が入っていると思って計算したら文字列が入っており、
こちらが求める結果にならなくなります。
変数名やコメントでどのようなデータか分かるようにして
問題を回避するようにして下さい。

リファレンス

リファレンスとは既に使用している変数と連動する変数を作成する機能です。

書式

リファレンスを使うには変数の前に「&」をつけます。

変数の書式
書式 具体例
&$変数; $連動用変数 = &$元の変数;

下のコードはリファレンスを使用した変数の値を変更すると、
元の変数の値も変更することを証明する例です。
$a = 10;
$b = &$a;
$b = 100;
			
echo "a = $a<br>";
echo "b = $b<br>";

出力結果
php_0011
php_0011