소개
프로그래밍에서 범위는 변수에 액세스할 수 있는 범위를 나타냅니다. 일반적으로 루프, 함수 등과 같은 구성 요소가 없는 간단한 PHP 스크립트에는 단일 범위가 있습니다. 의미에서 변수는 정의 시점부터 프로그램 전체에서 사용할 수 있습니다.
기본 스크립트의 변수는 include 또는 require 문과 통합된 다른 스크립트에서도 사용할 수 있습니다. 다음 예에서는 test.php 스크립트가 메인 스크립트에 포함되어 있습니다.
이것은 메인 스크립트입니다
$var=100;"test.php" 포함;?>
포함된 test.script 파일은 다음과 같습니다 -
echo "testscript.php의 \$var 값:" . $var;?>
메인 스크립트가 실행되면 다음과 같은 결과가 표시됩니다.
testscript.php의 $var 값:100
그러나 스크립트에 사용자 정의 함수가 있는 경우 내부의 모든 변수에는 로컬 범위가 있습니다. 따라서 함수 내부에 정의된 변수는 외부에서 접근할 수 없습니다. 함수 외부(위)에서 정의된 변수는 전역 범위를 가집니다.
예시
출력
이것은 다음 결과를 생성합니다 -
var=var1=Hellovar=100 var1=PHP 주의:정의되지 않은 변수:5PHP 행의 var 주의:정의되지 않은 변수:8행의 var1
전역 변수는 기능의 로컬 범위 내에서 자동으로 사용할 수 없습니다. 또한 함수 내부의 변수는 외부에서 액세스할 수 없습니다.
글로벌 키워드
전역 키워드를 사용하여 로컬 범위 내의 전역 변수에 대한 액세스를 명시적으로 활성화해야 합니다. PHP 스크립트는 다음과 같습니다 -
예시
출력
이것은 다음 결과를 생성합니다 -
함수 호출 전 a =10 b =20inside function a =10 b =20 c =15PHP 주의:정의되지 않은 변수:c in line 13after function a =20 b =20 c =
전역 변수는 이제 함수 내에서 처리할 수 있습니다. 또한 함수 내부의 전역 변수에 대한 변경 사항은 전역 네임스페이스에 반영됩니다.
$GLOBALS 배열
PHP는 $GLOBALS라는 연관 배열에 모든 전역 변수를 저장합니다. 변수의 이름과 값은 키-값 쌍을 형성합니다.
다음 PHP 스크립트에서 $GLOBALS 배열은 전역 변수에 액세스하는 데 사용됩니다 -
예시
출력
함수 호출 전 a =10 b =20c =15PHP 주의:정의되지 않은 변수:c 줄 12주의:정의되지 않은 변수:함수 a =20 b =20 c =이후 12번째 줄의 c정적 변수
static 키워드로 정의된 변수는 함수를 호출할 때마다 초기화되지 않습니다. 또한 이전 호출의 값을 유지합니다.
예시
출력
이것은 다음과 같은 결과를 생성합니다
함수 호출 :1 :x =0함수 호출 :2 :x =1함수 호출 :3 :x =2