Web制作メモ -トップへ-

[PHP] 変数の型を意識してみる

PHP2014.12.12 20:41

PHPは変数を定義する際、変数の型を意識せずに記述できますが、内部では変数の型に沿って処理されています。

変数の型

$str = "こんにちは"; //これは文字列型
$num = 99; //これは数値型

格納する値に合わせてPHPがそれに合わせた型で変数を作成します。代入の際にもPHPが自動的に型を変換してくれます。

型の自動変換

$str = $num; //先ほどの文字列型に数値を代入
echo $str; //99と表示
$num = "こんばんは"; //先ほどの数値型に文字列を代入
echo $num; //こんばんはと表示

文字列型をインクリメントしてみても成功します。

数値型への自動変換

$str = "5"; //文字列型
echo ++$str; //6と表示

変数の型はgettype()で確認できます。gettype()は型を取得したい変数を引数に取り、型を表す文字列を返します。先ほどのコードをgettype()で確認してみました。

型の確認

$str = "5";
echo gettype($str); //stringと表示される。文字列型です。
echo ++$str;
echo gettype($str); //integerと表示される。数値型に変わりました。

最初の代入時は文字列型(string)でしたが、インクリメントにより数値型(integer)に変換されました。

このように、変数の型はPHP側で自動的に変換されますが、自動変換で都合が悪いときもあり、そのような場合は型キャストなどで型を指定することもできます。