型を持つプログラミング言語

プログラミング言語が扱うデータには、通常は「型」があります。
例えば123は整数型、1.23は浮動小数点数型、”abc”は文字列型といった具合です。
PHPもプログラミング言語の一種なので、すべてのデータに型があります。

実際にPHPを使う際は、型についてはあまり意識しないかもしれません。
なぜならPHPには、必要に応じて暗黙的に型が変換されるという特徴があるためです。
例えば文字列型と整数型の足し算「”2″ + 3」は本来はそのままでは計算することができませんが、PHPでは「2 + 3」と解釈されて「5」という結果を得ることができます。
このような暗黙の型変換はごく自然に行われるため、PHPに型があるということ自体を知らなくても済んでしまう場合も多いでしょう。
しかし、より複雑な計算を正確に行うためには、型を意識することが大切です。
そのためには、PHPがどうやって型を扱うのかを知っておくと良いでしょう。

PHP自体は、実はC言語で作られています。
PHPのデータは、すべて「zval」と呼ばれるC言語の構造体に格納されます。
zvalの中には、データの型が何であるかという情報と、データをその型で表した場合の値が格納されています。
“2”というデータは「文字列型」という情報と、「値は”2″」という情報が入っているということです。
これらの情報のおかげで、PHPの内部では型の変換を明確に行うことが可能になっています。
暗黙の型変換はなんとなく行われる曖昧なものでなく、極めて規則正しいものになっています。