Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP 7 상수 배열 완전 정리: 합집합·동등·일치·불일치 연산

PHP 7부터는 define() 함수를 사용해 배열을 상수로 정의할 수 있습니다. 이렇게 선언한 상수 배열은 일반 배열처럼 다양한 연산자로 결합하거나 비교할 수 있으며, 대표적으로 합집합(+), 동등(==), 일치(===), 불일치(!=) 네 가지 연산 방식이 있습니다.

1. 상수 배열의 합집합 (+)

플러스(+) 연산자는 두 배열을 인덱스(키) 단위로 결합하는 합집합 연산을 수행합니다. 이때 왼쪽 배열의 키가 우선권을 가지므로, 오른쪽 배열에서는 왼쪽 배열에 없는 키의 요소만 추가됩니다. 아래 예제에서는 4개의 요소를 가진 배열 x와 5개의 요소를 가진 배열 y를 결합해 봅니다.

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

    print_r('두 배열의 합집합:');
    print_r($x + $y);

    print('상수 배열 rollno의 인덱스 3 값:');
    print(rollno[3]);

    print('상수 배열 Stud_Name의 인덱스 4 값:');
    print(Stud_Name[4]);
?>

실행 결과:

두 배열의 합집합:Array
(
    [0] => 11
    [1] => 12
    [2] => 13
    [3] => 14
    [4] => Alex
)
상수 배열 rollno의 인덱스 3 값:14
상수 배열 Stud_Name의 인덱스 4 값:Alex

배열 x에 이미 인덱스 0~3이 존재하기 때문에, 배열 y에서는 인덱스 4의 'Alex'만 추가된 것을 확인할 수 있습니다.

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);

    var_dump(rollno == rollno);    // 같은 상수 배열끼리 비교
    var_dump(rollno == Stud_Name); // 서로 다른 배열 비교
?>

실행 결과:

bool(true)
bool(false)

동일한 상수를 비교한 첫 번째 결과는 true이고, 키는 같지만 값이 전혀 다른 두 배열을 비교한 두 번째 결과는 false로 나옵니다.

3. 상수 배열의 일치 비교 (===)

일치 연산자(===)는 동등 연산자보다 훨씬 엄격한 비교를 수행합니다. 두 배열이 같은 키-값 쌍을 가지고, 값의 자료형까지 동일하며, 요소의 순서도 같아야 true를 반환합니다. 세 조건 중 하나라도 충족되지 않으면 false가 됩니다.

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

    var_dump(Stud_Name === Stud_Name); // 일치 연산자(===) 사용
?>

실행 결과:

bool(true)

4. 상수 배열의 불일치 비교 (!=)

불일치 연산자(!=)는 두 배열이 서로 같지 않은지를 검사합니다. 비교는 배열의 인덱스(키)와 요소 값을 기준으로 이루어지며, 두 배열이 다르면 true, 같으면 false를 반환합니다.

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

    var_dump(rollno != rollno);    // 같은 상수 배열끼리 비교
    var_dump(rollno != Stud_Name); // 서로 다른 배열 비교
?>

실행 결과:

bool(false)
bool(true)

마무리 정리

PHP 7의 상수 배열은 한 번 정의하면 변경할 수 없기 때문에 설정값이나 고정 데이터 목록을 관리할 때 특히 유용합니다. 합집합(+)으로 배열을 결합할 때는 왼쪽 배열의 키가 우선한다는 점, 그리고 ==, ===, != 연산자로 비교할 때는 각 연산자의 판단 기준(키, 값, 자료형, 순서)이 서로 다르다는 점을 정확히 이해하고 사용하는 것이 중요합니다.