PHP 개발 중에 get_defined_constants ()는 정의 된 모든 상수를 반환하는 매우 유용한 기능입니다. 그러나 많은 개발자가 처음으로 반환 결과에 혼란 스러울 때 :이 기능은 왜 키 값 쌍의 간단한 목록 대신 중첩 배열을 반환합니까?
get_defined_constants ()는 현재 스크립트에서 정의 된 모든 상수를 반환하는 내장 기능입니다. 구문은 다음과 같습니다.
array get_defined_constants ([ bool $categorize = false ] )
get_defined_constants ()를 호출하고 매개 변수 $ categorize = true 를 전달하면 상수의 "분류"로 중첩 배열을 반환합니다. 매개 변수가 명시 적으로 전달되지 않더라도 일부 환경은 기본적으로 중첩 구조를 반환 할 수 있습니다.
PHP에는 핵심 언어, 확장, 사용자 사용자 정의 및 기타 측면을 다루는 많은 유형의 상수가 있습니다. 이 정보를보다 명확하게 표시하기 위해 PHP는 상수를 구성하는 분류 방법을 제공합니다. 사용할 때 :
print_r(get_defined_constants(true));
다음과 유사한 출력 구조가 표시됩니다.
Array
(
[Core] => Array
(
[E_ERROR] => 1
[E_WARNING] => 2
...
)
[date] => Array
(
[DATE_ATOM] => Y-m-d\TH:i:sP
...
)
[user] => Array
(
[MY_CUSTOM_CONST] => 123
)
)
이 중첩 어레이 구조를 사용하면 확장자에 의해 제공되고 사용자 정의 된 코어 모듈에 의해 어떤 상수가 정의되는지 더 쉽게 이해할 수 있습니다. 이 조직은 특히 여러 확장이 사용되는 대규모 프로젝트 또는 환경에서 문제를 디버깅 및 문제 해결 문제를 해결할 때 유용합니다.
분류에 관심을 갖지 않고 간단한 상수 목록을 얻으려면 매개 변수를 False 로 설정하거나 매개 변수를 생략 할 수 있습니다.
$constants = get_defined_constants(false);
print_r($constants);
예를 들어 평평한 배열을 반환합니다.
Array
(
[E_ERROR] => 1
[E_WARNING] => 2
[DATE_ATOM] => Y-m-d\TH:i:sP
[MY_CUSTOM_CONST] => 123
)
이 접근법은 일정한 값을 빠르게 찾아야하는 상황에 적합하거나 상수를 처리 할 때 어디에서 왔는지 신경 쓰지 않는 경우에 적합합니다.
디버깅 할 때 사용자 정의 상수가 올바르게 정의되어 있는지 확인할 수 있습니다.
define('SITE_URL', 'https://m66.net');
$constants = get_defined_constants(true);
if (isset($constants['user']['SITE_URL'])) {
echo "끊임없는 SITE_URL 한정된,가치는입니다:" . $constants['user']['SITE_URL'];
}
이런 식으로, 우리는 프로젝트에서 일정한 이름 지정 충돌 문제를 피하기 위해 특정 상수의 정의 소스를 명확하게 찾을 수 있습니다.
PHP의 get_defined_constants ()가 중첩 배열을 반환하는 이유는 특히 상수의 원인을 명확하게 구별 할 수있는 대형 시스템에서 가독성과 유지 가능성을 향상시키는 이유입니다. 언뜻보기에는 복잡해 보이지만 구조와 목적을 이해하면 개발자의 손에 강력한 도구가 될 것입니다.