PHP は動的型付け言語です — 変数($ で始まる)は型を宣言せず、任意の値を保持できます。PHP には、スカラー型、複合型、特殊値をカバーする複数の組み込み型があります。
Variables and the scalar types
php
= ;
= ;
= ;
= ;
= ;
変数は常に $ で始まり、割り当てられた値から型を推論します。4 つのスカラー型は int、float、string、bool です。
$list = [1, 2, 3]; // array (PHP's all-purpose collection)
$map = ["name" => "Ann"]; // associative array (key → value)
$obj = new User(); // object (instance of a class)
$fn = fn($x) => $x * 2; // callable (closure/function)
$nothing = null; // null — "no value"
配列は PHP の汎用的なコレクション型(インデックス付きリストとキー値マップの両方)であり、オブジェクト、callable、および null があります。
gettype($count); // "integer"
is_int($count); // true
is_string($name); // true
(int) "42"; // 42 — explicit cast
(string) 42; // "42"
intval("42px"); // 42
// PHP automatically converts types in operations ("type juggling")
"5" + 3; // 8 (string "5" coerced to int)
"5" . 3; // "53" (. concatenates → both become strings)
// loose vs strict comparison
0 == "hello"; // historically true in old PHP (now false in PHP 8) — type juggling traps
0 === "0"; // false — STRICT comparison checks type too (preferred!)
"1" == 1; // true (loose) — but "1" === 1 is false
PHP の自動型強制により、驚くべき比較が発生します。解決策:型と値の両方をチェックする**厳密な比較(===)**を優先し、loose 比較(==)の落とし穴を避けます。
PHP の変数型を理解することは、毎日の基本的な知識です。
重要なポイント:PHP は動的型付け言語(変数は任意の値を保持でき、型は割り当てから推論される)で、スカラー型、汎用的な配列(リストとマップの両方として機能—PHP で最も使用されるデータ構造)、オブジェクト、および null があります。
最も重要なことは、型強制—PHP の操作と比較での自動型変換で、悪名高い驚くべき結果を引き起こす—について知ること、および loose(==)ではなく**厳密な比較(===)**を使用する慣例は、正確でバグのない PHP を書くために不可欠です。
+(数値)と .(文字列連結)の区別、および明示的なキャストも日常的な基本です。
この基礎的な型知識は正しい PHP コードの基盤となり、言語の悪名高い比較の落とし穴を避けるのに役立ちます。