第3章 演算子 / 第5回 模擬試験

PHPの配列の比較演算子に関する次の記述のうち、正しいものはどれか。

`==`による配列の比較は、キーと値のペアが(順序に関わらず)すべて等しい場合に`true`になる。 正解
`===`による配列の比較は、要素の並び順が異なっても`true`になる。
配列同士は比較演算子で比較することが一切できない。
配列の比較は、必ず要素数が異なると常にエラーになる。
解説
配列同士を`==`で比較すると、「要素数が同じで、すべてのキーとそれに対応する値が等しい」場合に`true`になります。この比較では要素の「並び順」は問われません。 他の選択肢が誤りである理由は次の通りです。 ・`===`による配列の比較は、`==`の条件に加えて「要素の並び順(挿入順)まで完全に一致する」ことも要求します。並び順が異なれば`===`は`false`になります。「並び順が異なっても`true`」というのは誤りです。 ・配列同士は`==`, `===`のほか、`<`, `>`などの比較演算子でも比較できます。「一切できない」は誤りです。 ・要素数が異なる配列同士を比較しても、エラーにはならず単に`false`と判定されます。 例: ``` $a = ['x' => 1, 'y' => 2]; $b = ['y' => 2, 'x' => 1]; // 並び順が違う var_dump($a == $b); // true(キーと値のペアが同じ) var_dump($a === $b); // false(並び順が違う) ``` (参照: 独習PHP 第4版 第3章 演算子 3.3.4節 配列の比較 p.105)