【サクッと解説】PHPの変数とデータ型を整理して理解する

目次

1. 本記事のポイント

  • PHPにおける基本的な変数の扱い方を正確に理解できる
  • スカラ型・配列・オブジェクトなどの主要なデータ型を一覧で整理
  • 実務上の型変換や動的型付けの注意点にも触れる

2. PHPの変数とデータ型とは?

PHPは動的型付け言語であり、変数の宣言時に明示的な型指定は不要です。
すべての変数は$で始まり、代入と同時に型が決まります(代入型推論)。

PHPの変数は、値の種類に応じて以下のようなデータ型に分類されます:

  • スカラ型(int, float, string, bool)
  • 配列(array)
  • オブジェクト(object)
  • リソース(resource)
  • NULL(null)

これらの型は、関数の返り値や条件分岐、配列のキー・値操作など、日常的なコーディングに密接に関わります。
特にPHP 7以降は型宣言のサポートが強化され、実務でも型安全性の考慮が必要になっています。

3. 詳細解説

基本的な変数の宣言とスカラ型

以下は、基本的なスカラ型(int, float, string, bool)の例です。

PHP
<?php
// 整数型
$intVar = 10;
echo gettype($intVar); // int

// 浮動小数点型
$floatVar = 3.14;
echo gettype($floatVar); // double

// 文字列型
$stringVar = "Hello";
echo gettype($stringVar); // string

// ブール型
$boolVar = true;
echo gettype($boolVar); // boolean
?>

配列の宣言とアクセス

配列は複数の値をまとめて管理するのに使われます。

PHP
<?php
// インデックス配列
$array = ["apple", "banana", "cherry"];
echo $array[1]; // banana

// 連想配列
$assoc = ["name" => "Taro", "age" => 20];
echo $assoc["name"]; // Taro
?>

オブジェクトの定義と利用

クラスとオブジェクトの扱いは、オブジェクト指向プログラミングの基本です。

PHP
<?php
class User {
    public $name;
    function __construct($name) {
        $this->name = $name;
    }
}

$user = new User("Hanako");
echo $user->name; // Hanako
?>

型変換(キャスト)と型の自動変換

PHPでは明示的なキャストと暗黙的な型変換の両方が存在します。

PHP
<?php
$val = "123";
$intVal = (int)$val;
echo $intVal; // 123

$sum = "10" + 5; // 文字列が自動で数値に変換される
var_dump($sum); // int(15)
?>

型の比較における注意点

PHPでは=====の違いに注意が必要です。

PHP
<?php
var_dump(0 == "0");    // bool(true)
var_dump(0 === "0");   // bool(false) 型も比較される
?>

4. よくあるミス・誤解・落とし穴

  • 型比較における誤解==は型を変換して比較するため、意図しない一致が起きることがある。
  • NULLや未定義変数の扱い:未定義変数にアクセスするとNoticeレベルの警告が出る。
  • gettype()では不十分なこともある:オブジェクトのクラス名取得にはget_class()を使う必要がある。
  • 浮動小数点の比較誤差:PHPに限らず、floatの比較にはabs($a - $b) < 0.0001のような誤差許容が必要な場合がある。

5. まとめ

PHPの変数とデータ型は、動的で柔軟な設計を特徴とします。
スカラ型、配列、オブジェクトの基本を押さえ、暗黙の型変換や比較演算の注意点を理解することが重要です。
また、PHP 7以降の型宣言機能も活用することで、より安全で明確なコードを書くことが可能になります。

よかったらシェアしてね!
  • URLをコピーしました!
目次