章: 第1章: 文法の土台
「比較したのに結果がおかしい」——その原因、型の違いかもしれません
PHPは変数に型を明示しなくても動く言語です。しかし、それが「なぜこの比較はtrueなのか?」という謎バグを生む原因にもなります。文字列・整数・真偽値などの違いを意識するだけで、比較や計算のミスを大幅に減らせます。
まずコードを動かしてみる
PHPの主なデータ型を確認しましょう。
<?php
$name = 'Aki';
$score = 95;
$isPassed = true;
var_dump($name, $score, $isPassed);
var_dump() を使うと型と値を同時に確認できます。型を「見える化」する習慣が、バグ発見の近道です。
PHPの主なデータ型
| 型 | 例 | 用途 |
| string | 'hello' |
テキスト・ユーザー名・URL |
| int | 42 |
整数・インデックス・件数 |
| float | 3.14 |
小数・金額・座標 |
| bool | true / false |
フラグ・条件 |
| null | null |
値なし・未設定 |
| array | [1, 2, 3] |
複数データのまとめ |
型を意識しないと起こる問題
<?php
$input = '10'; // フォームからの入力は文字列
$result = $input + 5; // 15(PHPが自動変換)
var_dump($result); // int(15) — 意図通り動いたが…
// 比較では思わぬ結果が
var_dump('10' == 10); // bool(true) ← 危険
var_dump('10' === 10); // bool(false) ← 型まで一致を確認
チェックポイント:
var_dump()で型を確認する癖をつけましょう。特にフォーム入力やデータベースからの値は「文字列で来ている」ことが多いため、比較前に型を確認することが重要です。
まとめ & 次のステップ
- PHPには string・int・float・bool・null・array など複数の型がある
var_dump()を使うと型と値を同時に確認できる- 型の違いが原因のバグは比較演算子
===で防ぎやすい - フォームやDBからの入力値は文字列として届くことを意識する
- 型を意識するだけで「なぜかおかしい」バグが大幅に減る
次回は 型変換(キャスト)を学びます。入力値を意図した型に変換する技術は、安全なWebアプリ開発の基本です。