《PHP8上級試験対策》配列の比較演算子 == と === の違いを徹底解説

  • URLをコピーしました!

はじめに

PHPで配列を比較するとき、===== の違いを理解していないと意図しない結果を招くことがあります。特に型や順番をどう扱うかは、試験でも実務でも問われやすい重要ポイントです。
この記事では、具体的なソースコードを通して「配列の比較」の仕組みを整理していきます。

キーワード:PHP 配列 / 比較演算子 / == と === の違い / 順序の影響 / 型の厳密比較

目次

サンプルコード

<?php
declare(strict_types=1); //PHP5でも実行するためコメントアウト
error_reporting(-1);

$arr1 = [
    'key1'   => 111,
    'key22'  => 222,
    'key333' => 333,     
];

$arr2 = [
    'key333' => 333,
    'key22'  => 222,
    'key1'   => 111,
];

$arr3 = [
    'key1'   => '111',
    'key22'  => '222',
    'key333' => '333', 
];

$arr4 = $arr1;

var_dump($arr1 == $arr2, $arr1 === $arr2);
echo "<br>";

var_dump($arr1 == $arr3, $arr1 === $arr3);
echo "<br>";

var_dump($arr1 == $arr4, $arr1 === $arr4);
echo "<br>";

実行結果

bool(true) bool(false)
bool(true) bool(false)
bool(true) bool(true)

解説

$arr1 == $arr2, $arr1 === $arr2

  • ==キーと値が一致していれば順番は無視true
  • ===キー・値・型・順番すべて一致 → 順番が違うため false

👉 出力: true, false

$arr1 == $arr3, $arr1 === $arr3

  • ==型を自動変換して比較するため、111'111' は同じとみなされる → true
  • ===型も厳密比較するため、数値と文字列は異なる → false

👉 出力: true, false

$arr1 == $arr4, $arr1 === $arr4

  • $arr4$arr1 をそのままコピーしたもの
  • すべての条件が完全一致するので =====true

👉 出力: true, true

まとめ

  • == は「キーと値が同じならOK」 → 順番や型の違いは無視
  • === は「完全一致」 → 順番も型も厳密に比較
  • 配列比較の落とし穴は 「順番」と「型」

試験や実務でバグを防ぐためには、**「値が同じか」だけでなく「型や順番まで同じか」**を意識することが大切です。

この記事が気に入ったら
いいねしてね!

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