〜変数のデータ型〜
データ型とは、その変数やデータの持つ属性のことです。
例えば数値は計算できますが、文字列は計算できません。一口に数値と言っても、整数や少数などの種類があります。また、何億・何兆という大きな数値もあれば、逆に小さな数値もあります。多くのプログラミング言語では、整数型、浮動小数点型、文字列型というように、これらを別のデータとして扱うようにしているのです。
プログラミング言語にはさまざまな種類がありますが、厳格なプログラミング言語では、変数を使う前に「名前は××で、データ型は○○の変数を使います」と宣言することを義務付けています。そして、その属性の範囲外のデータの代入(整数型の変数に文字を代入するなど)はできないようにしています。
以下はC#のプログラムにおける変数宣言の例です。この例では「i」という名前でデータ型は「int型」である変数を使うことを宣言しています。
♪変数宣言の例♪
class MyClass
{
void myFunc()
{
int i;
for ( i = 0; i < 400; i++ )
}
}
一方、PHPでは変数の宣言が不要なので、変数宣言の例で開設した規則に沿っていれば、好きな名前の変数をいきなり使うことができます。またデータ型を意識する必要がないため、変数にはどんな属性のデータでも代入できます。そして、PHPがわかる範囲で自動判別して処理してくれるのです。
このような仕組みは、プログラミング言語としては「甘い」ということになりますが、プログラミングの初心者にとっては「優しい」ともいえるでしょう。
次の例では、変数$aには整数、変数$bには浮動小数点、変数$cには文字列のデータが代入されています。データの指定はまったくありません。
実行結果を見ればわかるように、変数$aと変数$bの計算結果は浮動小数点になっています。また、変数$cには「文字列の500」が代入されていますが、途中で「数値の500」として、計算されて、最終的には数値型に自動変換されていることがわかります。
〜異なるデータ型を代入して計算する例〜
<php
$a = 54800;
$b = 2.50;
$c = "500";
print $a + $b;
print "<BR>";
print $a + $c;
?>
〜実行結果〜
また、次の例のように、同じ変数に対してあるときは数値を、あるときは文字列を代入することも可能です。ただし、このような使い方は間違いの元になりやすく、問題が発生した場合の補正が困難になります。実際のプログラムは使わないほうがいいでしょう。
<?php
$a = 54800;
print $a;
print "<BR>";
$a = "PHPとMySQL";
print $a;
print "<BR>";
?>
〜実行結果〜