PHP는 get_defined_constants () 함수를 제공하며 현재 스크립트에서 정의 된 모든 상수를 반환 할 수 있습니다. 함수는 키가 상수의 이름이고 값은 상수의 값 인 연관 배열을 반환합니다. 예를 들어:
$constants = get_defined_constants();
print_r($constants);
이 코드는 정의 된 모든 상수와 해당 값을 출력합니다. 상수 정의 목록의 두 가지 버전이 있다고 가정합니다. 하나는 상수 정의의 기존 버전이고 다른 하나는 상수 정의의 새 버전입니다.
우리가 두 개의 상수 배열을 가지고 있다고 가정합니다. 하나는 상수의 기존 버전이고 다른 하나는 상수의 새로운 버전입니다. array_diff_key () 함수를 통해 새 버전에 추가 된 새 상수를 찾을 수 있습니다. Array_Diff_Key () 함수는 두 배열의 키 (즉, 상수 이름)를 비교하여 첫 번째 배열에 있지만 두 번째 배열에는 있지 않은 키 값 쌍을 반환 할 수 있습니다.
// 상수의 오래된 버전
$old_constants = get_defined_constants();
// 상수의 새 버전을 시뮬레이션하십시오
define('NEW_CONSTANT', 'New Value');
define('ANOTHER_NEW_CONSTANT', 'Another New Value');
$new_constants = get_defined_constants();
// 사용 array_diff_key 새로운 상수를 찾으십시오
$new_added_constants = array_diff_key($new_constants, $old_constants);
// 새로운 상수를 출력합니다
print_r($new_added_constants);
이 예에서 먼저 get_defined_constants ()를 사용하여 현재 스크립트에서 정의 된 모든 상수를 얻으십시오. 그런 다음 새 버전의 상수 정의를 시뮬레이션하고 get_defined_constants ()를 다시 호출하여 새로운 상수 목록을 얻습니다. array_diff_key () 함수를 통해 새로운 상수의 배열을 비교하여 새로 추가 된 상수를 찾으십시오.
Array_Diff_Key ()는 두 배열의 키를 비교하여 기존 배열에 존재하지 않는 새 배열에서 키 (상수 이름)의 일부를 반환합니다. 궁극적으로,이 방법으로 우리는 새로 추가 된 상수를 찾을 수 있습니다.
이 접근법은 대규모 프로젝트에서 다른 버전의 상수를 비교하는 데 매우 유용합니다. 특히 다인원 협업 개발 환경에서 새로 추가 된 상수를 추적하면 개발자가 프로젝트의 업데이트 된 내용을 빠르게 이해하고 일정한 이름 충돌 또는 누락으로 인한 오류를 피할 수 있습니다.
get_defined_constants ()는 현재 스크립트에 정의 된 상수 만 반환 하므로이 방법을 사용할 때는 상수 목록이 최신 상태인지 확인하십시오.
Array_Diff_Key ()는 배열의 주요 이름 만 비교합니다. 일정한 변화의 값이 변경되었지만 키 이름이 변경되지 않으면이 메소드는 감지 할 수 없습니다.
특정 상수의 값을보아야하는 경우, get_defined_constants ()는 상수 이름과 상수 값을 포함하는 배열을 반환하며 그 값은 상수 이름을 통해 직접 액세스 할 수 있습니다.
이런 식으로 새 버전에 추가 된 상수를 쉽게 찾을 수있어 코드가보다 효율적으로 업데이트되고 유지 관리되도록 할 수 있습니다.