PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHP7の定数配列で使える4つの演算方法|結合・等価・同一性・不等を徹底解説

PHP 7では、define()関数を使って配列を定数として定義できます。さらに、定義した定数配列に対しては、通常の配列と同様にさまざまな演算を行うことが可能です。

本記事では、PHP 7における定数配列の主な演算の種類を4つ紹介し、それぞれコード例と実行結果とともに解説します。

  • 定数配列の結合(Union:+ 演算子)
  • 定数配列の等価比較(Equality:== 演算子)
  • 定数配列の同一性比較(Identity:=== 演算子)
  • 定数配列の不等比較(Inequality:!= 演算子)

1. 定数配列の結合(+ 演算子)

結合(ユニオン)は、プラス記号(+)を使って2つの配列を1つにまとめる演算です。結合はインデックス単位で行われ、左側の配列に存在するキーは右側の配列の値で上書きされません。

例として、4つの要素を持つ配列 $x と、5つの要素を持つ配列 $y を用意し、print_r($x+$y) によって両者を結合してみましょう。

コード例

<?php
    $x = array(11, 12, 13, 14);
    $y = array('Rohan', 'Mohan', 'Thomas', 'John', 'Alex');
    define('rollno', $x);
    define('Stud_Name', $y);

    print_r("The union of the arrays are:");
    print_r($x + $y);

    print("The constant array of rollno is at index 3 is:");
    print(rollno[3]);

    print("The constant array of Stud_Name is at index 4 is:");
    print(Stud_Name[4]);
?>

実行結果

The union of the arrays are: Array
(
    [0] => 11
    [1] => 12
    [2] => 13
    [3] => 14
    [4] => Alex
)
The constant array of rollno is at index 3 is:14
The constant array of Stud_Name is at index 4 is:Alex

このように、+ 演算子では左側の配列 $x の要素が優先され、右側の配列 $y からは $x に存在しないキー(ここではインデックス4の「Alex」)だけが追加されていることがわかります。

2. 定数配列の等価比較(== 演算子)

等価演算子(==)は、2つの配列が等しいかどうかを判定します。この比較は、キー(インデックス)と要素値の組み合わせが一致しているかどうかに基づいて行われます。型の違いは考慮されません。

等しければ true、等しくなければ false を返します。

コード例

<?php
    $x = array(11, 12, 13, 14, 15);
    $y = array('Rohan', 'Mohan', 'Thomas', 'John', 'Alex');
    define('rollno', $x);
    define('Stud_Name', $y);

    print_r("The equality of the rollno arrays are:");
    var_dump(rollno == rollno); // 同じ定数同士の比較なので true

    print_r("The equality of the arrays are:");
    var_dump(rollno == Stud_Name); // 内容が異なるため false
?>

実行結果

The equality of the rollno arrays are:bool(true)
The equality of the arrays are:bool(false)

3. 定数配列の同一性比較(=== 演算子)

同一性演算子(===)は、2つの配列が完全に同一であるかどうかを厳密にチェックします。同じキーと値のペアが、同じ型で、同じ順序で並んでいる場合のみ true を返し、それ以外は false を返します。

等価演算子との大きな違いは、型まで厳格に比較されるという点です。

コード例

<?php
    $x = array('Rohan', 'Mohan', 'Thomas', 'John', 'Alex');
    define('Stud_Name', $x);

    print_r("The identity of the Stud_Name arrays are:");
    var_dump(Stud_Name === Stud_Name); // 同一性(===)演算子を使用
?>

実行結果

The identity of the Stud_Name arrays are:bool(true)

4. 定数配列の不等比較(!= 演算子)

不等演算子(!=)は、2つの配列が等しくないことを確認するために使用します。比較はキー(インデックス)レベルおよび要素値に対して行われます。

例えば、4つの要素を持つ配列 $x と5つの要素を持つ配列 $y$x != $y で比較すると、内容が一致しないため結果は true になります。

コード例

<?php
    $x = array(11, 12, 13, 14, 15);
    $y = array('Rohan', 'Mohan', 'Thomas', 'John', 'Alex');
    define('rollno', $x);
    define('Stud_Name', $y);

    print_r("The inequality of the rollno arrays are:");
    var_dump(rollno != rollno); // 同じ定数同士なので false

    print_r("The inequality of the arrays are:");
    var_dump(rollno != Stud_Name); // 内容が異なるので true
?>

実行結果

The inequality of the rollno arrays are:bool(false)
The inequality of the arrays are:bool(true)

まとめ

演算子名称動作
+結合(Union)2つの配列をインデックス単位で統合(左側優先)
==等価(Equality)キーと値のペアが一致すれば true(型は緩く比較)
===同一性(Identity)キー・値・型・順序がすべて一致すれば true
!=不等(Inequality)キーと値のペアが一致しなければ true

PHP 7の定数配列は、設定値や固定データの管理に非常に便利です。これらの演算子の挙動の違い、特に ===== の型の扱いの差を正しく理解しておくことで、意図しないバグを防ぐことができます。

  1. C言語の配列とは?宣言・初期化の基本をサンプルコードで解説

    配列(Array)とは、同じ型の要素を連続したメモリ領域に格納したデータの集まりです。メモリ上の最も低いアドレスが先頭の要素に対応し、最も高いアドレスが末尾の要素に対応します。 配列のインデックス(添字)は0から始まり、配列サイズから1を引いた値(配列サイズ - 1)で終わります。また、配列のサイズは0より大きい整数でなければなりません。 配列のインデックスの例 具体的に例を見てみましょう。 配列サイズ = 10 の場合 配列の先頭インデックス = 0 配列の末尾インデックス = 配列サイズ - 1 = 10 - 1 = 9 C言語における配列の宣言 C言語で配列を宣言する構文は以下の通りで

  2. C言語の多次元配列とは?行優先・列優先の仕組みとサンプルコード

    多次元配列とは配列とは、同種のデータ(ホモジニアスなデータ)をまとめて管理するための基本的なデータ構造です。配列の要素は、メモリ上の連続した領域に順番に配置されます。しかし実際のプログラミングでは、1次元の配列だけでは不十分なケースが少なくありません。例えば、表形式のデータや行列を扱う場合には、2次元配列やさらに多くの次元を持つ多次元配列を作成する必要があります。行優先方式と列優先方式多次元配列をメモリ上に表現する方法には、大きく分けて2つのアプローチがあります。ひとつは行優先(Row-Major)方式、もうひとつは列優先(Column-Major)方式です。r行 c列の2次元配列を考えてみま