PHP 프로그래밍에서 마법 상수는 매우 유용합니다. 현재 파일 경로, 줄 번호 등과 같은 프로그램이 실행될 때 동적 정보를 제공 할 수 있습니다. 일반적인 마법 상수에는 __file__ , __dir__ , __line__ 등이 포함됩니다. 그러나 일반적으로 전통적인 상수 방법을 통해 이러한 마법 상수의 값을 직접 얻을 수는 없습니다. 이 기사는 get_defined_constants 함수를 통해 PHP에서 마법 상수 값을 얻기위한 해결 방법을 소개합니다.
get_defined_constants는 정의 된 모든 상수 배열을 반환하는 PHP 내장 기능입니다. 함수는 다음과 같이 정의됩니다.
get_defined_constants(bool $categorize = false): array
카테고리 매개 변수는 반환 된 상수가 범주별로 그룹화되는지 여부를 결정합니다. 기본적으로 False는 모든 상수를 평평한 배열로 반환합니다. true 로 설정되면 범주가 포함 된 연관 배열 (예 : 사용자 , 내부 등)이 반환됩니다.
이 함수는 사용자 정의 상수 및 PHP 내장 상수를 포함하여 모든 상수 이름과 상수 값을 포함하는 배열을 반환합니다.
Magic 상수는 PHP 언어와 함께 제공되는 특수 상수이며 프로그램이 실행될 때 동적으로 변경됩니다. 예를 들어, __file__는 현재 파일의 전체 경로를 반환하고 __line__는 현재 코드 줄 번호를 반환합니다. 이러한 상수는 변형되지 않으며 일반적으로 디버깅 또는 파일 침입 작업에 사용됩니다.
get_defined_constants를 통해 PHP의 모든 상수의 정의를 얻을 수 있지만 마법 상수는 직접 포함되지 않습니다. 따라서 Magic Constant의 가치를 얻으려면 PHP 코드를 실행하는 동안 다른 정보로 일부 해결 방법을 수행 할 수 있습니다.
다음은 get_defined_constants를 통해 현재 파일 경로 및 줄 번호와 같은 Magic 상수 값을 얻는 예입니다.
<?php
// 정의 된 모든 상수를 얻으십시오
$constants = get_defined_constants(true);
// 현재 파일 경로의 마법 상수를 얻으십시오
$file_path = __FILE__;
echo "현재 파일 경로: " . $file_path . "\n";
// 현재 코드 라인 번호의 매직 상수 받기
$line_number = __LINE__;
echo "현재 줄 번호: " . $line_number . "\n";
// 모든 상수를 출력하십시오
echo "모든 정의 된 상수:\n";
print_r($constants);
// 포함하십시오 m66.net 도메인 이름 URL(해결 방법 구현)
$url = "http://m66.net/somepage";
echo "URL: " . $url . "\n";
?>
이 예에서는 먼저 get_defined_constants 함수를 사용하여 모든 정의 된 상수를 얻은 다음 Magic 상수 __file__ 및 __line__를 통해 현재 파일 경로와 코드 줄 번호를 출력합니다. 이런 식으로, 우리는 간접적으로 마법 상수의 가치를 얻습니다.
get_defined_constants는 마법 상수에 직접 액세스 할 수 없으므로 PHP가 제공하는 다른 방법을 통해 이러한 상수의 값을 수동으로 캡처 할 수 있습니다. 예를 들어, 현재 파일의 경로와 줄 번호를 동적으로 얻으려면 다음 코드를 사용할 수 있습니다.
<?php
// 현재 파일로가는 길을 가져옵니다
$file_path = __FILE__;
echo "현재 파일 경로:{$file_path}\n";
// 현재 줄 번호를 얻으십시오
$line_number = __LINE__;
echo "현재 줄 번호:{$line_number}\n";
// 현재 디렉토리를 얻으십시오
$dir_path = __DIR__;
echo "현재 디렉토리 경로:{$dir_path}\n";
?>
get_defined_constants 함수를 통해 PHP에서 대부분의 상수의 정의를 얻을 수 있지만 마법 상수의 경우 런타임에 동적으로 변경되므로 PHP가 제공 한 마법 상수를 사용하여 해당 값을 얻어야합니다. get_defined_constants는 마법 상수를 직접 제공하지는 않지만 해결 방법을 통해이 정보를 얻고 다른 기능과 함께 요구를 구현할 수 있습니다.
이 기사가 get_defined_constants를 통해 PHP에서 상수의 정의를 얻는 방법을 더 잘 이해하고 PHP에서 마법 상수를 얻기 위해 해결 방법을 탐색하는 방법을 더 잘 이해하는 데 도움이되기를 바랍니다. 실제 개발에 비슷한 문제가있는 경우이 방법을 시도하여 해결할 수 있습니다.