第2章 定数と変数の型変換
2.2 変数の型を変化させる
PHPでは他のプログラム言語と違い、データの型をあまり意識しなくてもいいようになっています。しかし、時には型まで意識してプログラムを作成する場合も出てきます。そのような場合に、データの型を明示的に操作できる仕組みの「キャスト」について学習していきましょう。
2.2.1 変数のデータの型は自動変換される
PHPには以下の表2.2.1のように様々なデータの型があります。変数のデータの型は変数にデータを入れる度に自動で変わります。このようにデータの型が変わることを型変換と呼びます。このようにPHPでは自動で型の変換を行ってくれるので、型について意識しないでよくなっています。
表 2.2.1:データ型の一覧
例えば以下のソースコードのように、初めに「数値の10」を代入し、その後「文字列の’AB’」を代入します。
図 2.2.1: 変数への代入は自動で型を変換
上記図で示したとおり変数の型はintからStringに変わり、代入されたデータによって自動で変化してくれます。
2.2.2 変数のデータの型を明示的に変換する
変数へデータを入れると自動で型が変わりますが、データを入れる時だけではなく使うタイミングで明示的に変更することもできます。そのような明示的に変更することを「キャスト」と呼びます。
表 2.2.2:主なキャスト一覧
キャストの書式は以下に示します。
書式:キャスト
変更したい型は表2.2.2を参考にしてください。キャストは変数の中身のデータを直接変更するのではなく、値を参照した後に変更することになります。
凡例:キャスト
凡例の結果として$var1はそのまま整数型で「2011」が格納されていますが、$var2は文字列型でキャストを行っているので文字列型の「’2011’」になります。
図 2.2.2: 変数のキャストは参照した値を変換する
変数のキャストを利用するプログラム
ソース・フォルダー: myproj_basic/ch02
パッケージ: useCast.php
アクセスURL:http://localhost/myproj_basic/ch02/useCast.php
useCast.php
解説
2行目で変数$numに浮動小数点型の値「2.2360679」を代入しています。
9行目で代入した値をそのまま表示しています。実行結果から分かるように2行目で代入した値が正しく表示されています。
10行目で$numを整数型(int)でキャストを行い結果を表示しています。整数型は小数点は扱えない型のため、実行結果は小数点が切り捨てられた「2」が表示され、正しくキャストが行われているのが確認できます。
11行目では再度$numの値を画面に表示して、10行目のキャストが変数$numに影響がないことを確認しています。初めに代入した値「2.2360679」が正しく表示され、キャストの影響がないことが確認できます。