PHP는 동적 언어이며 개발자가 작성한 코드는 해당 논리를 실행합니다. 그러나 코드를 실행하는 과정에서 일부 작업을 완료하는 데 도움이 되는 환경 변수나 시스템 상수와 같은 것이 필요한 경우가 많습니다. PHP는 개발자가 중요한 정보를 신속하게 얻고 처리할 수 있도록 사전 정의된(또는 내장된) 변수를 제공합니다. 이러한 변수는 미리 정의된 상수와 슈퍼전역 변수라는 두 가지 유형으로 나뉩니다.
미리 정의된 상수
미리 정의된 상수에는 PHP에서 특별한 정의가 있습니다. PHP 스크립트가 실행되기 전에 정의됩니다. 일반적으로 사용되는 사전 정의된 상수는 다음과 같습니다.
LINE: 코드 줄 수를 나타냅니다.
FILE: 파일의 경로와 이름을 나타냅니다.
DIR: 파일이 있는 디렉터리의 절대 경로를 나타냅니다.
FUNCTION: 함수 이름을 나타냅니다.
CLASS: 네임스페이스를 포함한 클래스 이름을 나타냅니다.
TRAIT: 네임스페이스를 포함한 특성 이름을 나타냅니다.
METHOD: 클래스의 메서드 이름을 나타냅니다.
NAMESPACE: 현재 네임스페이스 이름을 나타냅니다.
미리 정의된 상수는 읽을 수 있지만 재할당할 수는 없습니다. 예를 들면 다음과 같습니다.
<?php echo __FILE__; // 输出当前文件的路径 echo __LINE__; // 输出当前代码的行数 ?>
미리 정의된 상수의 목적은 개발자가 코드를 신속하게 찾아 디버깅하는 데 도움을 주고, 오류 보고서에 사용하거나 코드 실행 경로 및 코드 실행 경로를 기록하는 데 사용될 수 있습니다. 타임 스탬프 등
슈퍼 전역 변수
슈퍼 전역 변수는 범위나 함수 매개변수 전달에 대한 걱정 없이 PHP 스크립트의 어디에서나 액세스할 수 있는 변수입니다. 모든 슈퍼전역 변수는 밑줄로 시작하는 전역 변수의 배열이며 배열 이름은 버전마다 다릅니다. 슈퍼전역 변수에는 다음과 같은 유형이 있습니다.
$GLOBALS: 모든 변수를 포함하는 전역 범위 배열 변수의 이름은 배열의 키입니다.
$_SERVER: 서버 및 실행 환경 정보입니다. 예: $_SERVER['PHP_SELF']는 현재 실행 중인 스크립트의 파일 이름을 반환합니다.
$_GET: HTTP GET 변수.
$_POST: HTTP POST 변수.
$_FILES: HTTP 파일 업로드 변수.
$_REQUEST: $_GET, $_POST 및 $_COOKIE 변수의 내용도 포함하는 HTTP 요청 변수입니다.
$_SESSION: 세션 변수.
$_COOKIE: HTTP 쿠키.
$_ENV: 환경 변수.
$_SERVER 슈퍼 전역 변수의 예:
<?php echo $_SERVER['PHP_SELF']; //显示当前执行脚本的文件名,即 index.php echo $_SERVER['SERVER_NAME']; // 显示当前运行脚本所在的服务器的主机名(本机 IP) echo $_SERVER['HTTP_REFERER']; // 获取网页的来源地址 (referer) echo $_SERVER['DOCUMENT_ROOT']; // 显示当前执行脚本的文档根目录(/var/www/) ?>
슈퍼 전역 변수의 장점은 전역 변수에 액세스해야 할 때 모든 함수에서 이러한 변수를 전달할 필요가 없다는 것입니다. 그러나 이러한 변수는 모든 스크립트의 어느 곳에서나 직접 액세스할 수 있기 때문에 일부 보안 문제도 발생합니다. 공격자는 일부 취약점을 사용하여 이러한 전역 변수의 내용을 수정하여 시스템에서 예외를 생성하고 오류의 원인을 디버깅 및 분석할 수 있습니다. 예외도 더 어려울 것입니다.
결론:
미리 정의된 상수와 슈퍼전역 변수는 PHP에 내장된 변수 중 일부로서 PHP 프로그래머의 개발과 디버깅을 더욱 편리하고 효율적으로 만들어줍니다. 그러나 이를 사용할 때는 예기치 않은 문제를 방지하기 위해 보안 문제와 특정 구현 세부 사항도 고려해야 합니다.
위 내용은 PHP 사전 정의: 사전 정의된 상수 및 초전역 변수 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!