【6日でできるPHP入門】型変換

 PHPでは、変数に格納する値のデータ型(整数・文字列・小数・真偽値など)が自動的に決まりますが、時には「型を明示的に変換したい」「型を合わせて正しく比較したい」ことがあります。
 このように値の型を意図的に切り替えることを「型変換(かたへんかん)」と呼びます。型変換は、数値と文字列を比較する際や、外部入力を安全に扱う際などに役立つ重要なテクニックです。

1.型変換の基本

1.1. 型変換とは?

型変換(キャスト)は、ある型の値を別の型に変換する処理です。PHPでは以下の方法で型変換が行えます。

変換先キャスト構文例結果
文字列(string)$x$xを文字列型へ
整数(int)$y または(integer)$y$yを整数型へ
浮動小数点(float)$z$zを小数型へ
論理値(bool)$flag$flagを真偽値へ
配列(array)$var$varを配列型へ
オブジェクト(object)$val$valをオブジェクトへ

2.型変換の実践例

2.1. さまざまな型への変換

サンプル1:整数と文字列の型変換

ファイル名: lesson30_1.php

<?php
$num = 123;          // 整数
$text = "456";       // 文字列

$str_num = (string)$num;  // 整数→文字列
$int_text = (int)$text;   // 文字列→整数

var_dump($str_num);  // string(3) "123"
echo "<br>";
var_dump($int_text); // int(456)
?>

実行結果

サンプル2:小数や論理値への型変換

ファイル名: lesson30_2.php

<?php
$value = "7.89";
$float_val = (float)$value;  // 文字列→小数
var_dump($float_val);        // float(7.89)

$bool_val = (bool)$value;    // 文字列→真偽値
var_dump($bool_val);         // bool(true)
?>

実行結果

3.型変換の活用と注意点

3.1. 型を合わせて安全に比較

型が異なるまま比較をすると、予期せぬ結果になることがあります。
比較の前に型変換することで、意図通りの判定ができます。

解説
(int)"5" === 5int型同士なのでtrue
"5" == 5型変換後に比較されtrue(==は自動型変換)
"5" === 5型が違うためfalse(===は型も比較)

3.2. 型変換の自動と明示的な違い

 PHPでは必要に応じて自動で型変換が行われますが、明示的な型変換(キャスト)を使うことで、より安全にプログラムを書けます。

4.そのほかの型変換例

サンプル3:配列やオブジェクトへの変換

ファイル名: lesson30_3.php

<?php
$data = 2024;
$arr = (array)$data;     // 配列化
$obj = (object)$data;    // オブジェクト化
var_dump($arr);          // array(1) { [0]=> int(2024) }
echo "<br>";
var_dump($obj);          // object(stdClass)#1 (1) { ["scalar"]=> int(2024) }
?>

実行結果

まとめ

  • 型変換は値の型を切り替えるためのPHPの重要な機能
  • (型名) のキャスト構文で、明示的に型を変換できる。
  • 比較やデータの整合性を保つために型変換を活用しよう。
  • 型変換をうまく使えば、エラーの防止や安全なプログラム作成につながる。

いろいろな型変換を試しながら、型の扱いに強くなりましょう。