【文字列⇔数値】PHPの型変換の方法【現役エンジニアが解説】

PROGRAM

今回は、PHPの型変換の方法について、暗黙の型変換と明示的な型変換に分け、簡単に解説していきます。

暗黙の型変換

PHPには型がないと言われることがありますが、決してないわけではありません。

ただ、PHPでは暗黙の型変換が行われるため、基本的には型を気にする必要がないだけです。

$number = "7";
$number = $number * 2; // "7"は文字列だが数値に変換されて2が乗ぜられ14となる
echo $number; // 14は数値型だが文字列に変換されて"14"が出力される

上記のように、PHPでは文字列と数値の間では暗黙の型変換がなされますが、このようなプログラミング言語のことを動的型付けのプログラミング言語と呼びます。

明示的な型変換

暗黙の型変換は便利ですが、場合によっては意図しない型になる可能性があります。

例えば、JSON等でデータ連携をする際には、暗黙の型を明示的な型にしておくべきです。

$number = 7;
$number = (string)$number; // 明示的に文字列の"7"に変換
$number = (int)$number; // 明示的に数値型の7に変換

上記のような記述で明示的に型を変換することを、C言語の頃からキャストと呼んでいます。

明示的な型変換が必要なケース

JSONにする際には、そのJSONを受け取る相手が必ずしも動的型付けのプログラミング言語とは限らないため、型の指定がある場合は必ず型変換しておいた方が良いでしょう。

$name = "山田太郎";
$gender = "男性";
$age = "22";

$person = array("name"=>$name, "gender"=>$gender, "age"=>$age);
header('content-type: application/json; charset=utf-8');
echo json_encode($person);

上記のように、PHPのような動的型付けのプログラミング言語では、数値のデータも無意識に文字列として扱ってしまっていることがあるため、データ連携をする際には型に十分注意し、必要に応じてキャストしましょう。

また、動的型付けのプログラミング言語であっても、静的型付けのプログラミング言語を中心に扱う開発者がチームにいる場合やよりわかりやすいコードを目指す等のコーディング規約がある場合には、型は明示的にしておいた方が良いでしょう。