현재 위치: > 최신 기사 목록> get_defined_constants () 및 array_filter () 함수를 사용하여 특정 상수를 필터링하는 방법?

get_defined_constants () 및 array_filter () 함수를 사용하여 특정 상수를 필터링하는 방법?

M66 2025-06-27

PHP 개발 중에, 우리는 종종 코드의 가독성과 유지 가능성을 유지하기 위해 많은 상수를 정의합니다. 예를 들어, 시스템 수준 구성, 오류 코드, 권한 식별 등. 프로젝트 크기가 증가함에 따라 상수의 수가 점차 증가하며 때로는 정의 된 모든 상수로부터 특정 목적을 위해 특정 상수를 필터링해야합니다. 현재 두 가지 함수 get_defined_constants ()array_filter ()가 편리합니다.

get_defined_constants 소개 ()

get_defined_constants ()는 현재 스크립트에서 정의 된 모든 상수를 가져 오는 내장 함수입니다. 이 함수는 다차원 연관 배열을 반환하며, 이는 상수가 속한 범주 (예 : 핵심 , 사용자 , 날짜 등)별로 기본적으로 그룹화됩니다.

사용의 예 :

 print_r(get_defined_constants());

출력 (부품) :

 Array
(
    [Core] => Array
        (
            [E_ERROR] => 1
            [E_WARNING] => 2
        )
    [user] => Array
        (
            [MY_APP_ENV] => 'production'
        )
)

True 매개 변수가 전달되면 분류별로 그룹화 된 상수가 반환됩니다. false 또는 생략되면 평평한 연관 배열이 반환됩니다.

array_filter () 소개

Array_Filter ()는 배열에서 각 요소에 콜백 함수를 적용하고 기준을 충족하는 요소를 필터링하기위한 또 다른 강력한 도구입니다. 콜백 함수에서 True를 반환하는 요소가 유지됩니다.

기본 사용량은 다음과 같습니다.

 $filtered = array_filter($array, function($value) {
    return $value > 10;
});

실용 : 필터 사용자 정의 상수

응용 프로그램 구성을 식별하기 위해 코드에서 APP_ 로 시작하는 일부 상수를 정의한다고 가정합니다.

 define('APP_NAME', 'MyApp');
define('APP_ENV', 'production');
define('APP_DEBUG', true);
define('VERSION', '1.0.0');

APP_ 로 시작하는 모든 상수를 걸러 내고 싶습니다. get_defined_constants ()array_filter ()를 결합하여 다음과 같이 구현할 수 있습니다.

 $allConstants = get_defined_constants(true);
$userConstants = $allConstants['user'] ?? [];

$appConstants = array_filter($userConstants, function($key) {
    return strpos($key, 'APP_') === 0;
}, ARRAY_FILTER_USE_KEY);

print_r($appConstants);

출력 결과 :

 Array
(
    [APP_NAME] => MyApp
    [APP_ENV] => production
    [APP_DEBUG] => 1
)

이러한 방식으로 구성 내보내기, 디버깅 및 인쇄 등과 같은 편리한 후속 처리를 위해 APP_ 로 시작하는 모든 사용자 지정 상수를 정확하게 추출합니다.

실제 확장 : 결과를 JSON으로 변환하여 인터페이스로 보냅니다.

또한 필터링 된 상수를 JSON으로 변환하여 원격 인터페이스 (예 : 로그 시스템 또는 구성 센터)로 제출할 수도 있습니다. 예를 들어 https://m66.net/api/report_constants 로 보내십시오.