예:
코드 복사
$a = 1
include 'b.inc'; >
이 변수 $a는 포함 파일 b.inc에 적용됩니다. 그러나 사용자 정의 함수에는 로컬 함수 범위가 도입됩니다. 함수 내에서 사용되는 모든 변수는 기본적으로 로컬 함수의 범위로 제한되며 현재는 로컬 변수입니다.
PHP의 전역 변수는 함수에서 사용될 때 전역으로 선언되어야 합니다.
함수 내에서 전역 변수를 사용하여 선언한 변수는 전역 변수로 함수 외부에서도 사용할 수 있습니다. 참고: 변수를 전역적으로 선언하는 경우 변수에 직접 값을 할당할 수 없습니다. 먼저 변수를 선언한 다음 값을 할당해야 합니다.
전역 범위에서는 $GLOBALS를 통해 전역 변수에 액세스할 수도 있습니다. 함수 내에서 전역 변수에 액세스하기 위해 전역 키워드를 사용할 필요가 없습니다. $GLOBALS는 연관 배열이고, 각 변수는 요소이며, 키 이름은 변수 이름에 해당하고, 값은 변수의 내용에 해당합니다. $GLOBALS는 슈퍼전역 변수이기 때문에 $GLOBALS는 전역 범위에 존재합니다.
상수는 변수 범위에 관계없이 어디에서나 정의하고 액세스할 수 있습니다.
변수 범위의 또 다른 중요한 기능은 정적 변수입니다. 정적 변수는 로컬 함수 범위에만 존재하지만 프로그램 실행이 이 범위를 벗어나도 해당 값은 손실되지 않습니다. 정적 변수는 첫 번째 호출에서만 초기화됩니다. 선언 시 값을 할당할 수 있지만 표현식 값은 될 수 없습니다. 선언의 표현식 결과와 함께 이를 할당하면 구문 분석 오류가 발생합니다.
정적 변수에 참조(&가 있는 변수 또는 객체)를 할당하면 해당 참조가 정적으로 저장되지 않으며, 두 번째 함수 호출 시 정적 변수의 값이 기억되지 않습니다. . 마찬가지로 참조(&가 포함된 변수 또는 개체)가 전역 변수에 할당되면 이 변수의 변경은 함수 외부에는 영향을 주지 않으며 범위는 함수 내부에만 적용됩니다.