전역 변수(Global Variable)는 프로그램의 어느 부분에서든 접근할 수 있는 변수입니다. 하지만 함수 내부에서 전역 변수의 값을 수정하려면, 해당 변수가 전역 변수임을 명시적으로 선언해 주어야 합니다.
이때 사용하는 것이 바로 global 키워드입니다. 함수 안에서 수정하려는 변수 앞에 global을 붙여주면, PHP는 해당 변수를 지역 변수가 아닌 전역 변수로 인식하게 됩니다.
전역 변수 선언 예제
다음 코드는 PHP에서 global 키워드를 사용하여 함수 내부에서 전역 변수를 선언하고 값을 변경하는 기본적인 방법을 보여줍니다.
<?php
$val = 1;
function display() {
global $val;
$val++;
print "Value = $val";
}
display();
?>실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Value = 2
함수 내부에서 global $val;이라고 선언했기 때문에, $val++ 연산은 외부에 선언된 전역 변수 $val에 그대로 적용됩니다. 만약 global 선언이 없었다면 함수는 새로운 지역 변수를 생성했을 것이고, 출력값은 1이 되었을 것입니다.
여러 개의 전역 변수를 함께 사용하는 예제
하나의 global 키워드로 여러 변수를 동시에 선언할 수도 있습니다. 아래 예제에서는 두 개의 전역 변수를 쉼표로 구분하여 한 번에 선언합니다.
<?php
$a = 2;
$b = 3;
function display() {
global $a, $b;
$b = $a + $b;
}
display();
echo $b;
?>실행 결과
5
global $a, $b; 선언 덕분에 함수 내부에서 두 전역 변수 모두에 접근할 수 있으며, 계산된 결과(2 + 3 = 5)가 전역 변수 $b에 저장되어 최종적으로 화면에 출력됩니다.
정리
- 전역 변수는 프로그램 전체에서 접근 가능하지만, 함수 내부에서는 별도의 선언 없이는 읽기만 가능합니다.
- 함수 내부에서 값을 수정하려면
global키워드로 해당 변수를 반드시 선언해야 합니다. - 여러 개의 변수를
global $a, $b;형태로 한 번에 선언할 수 있습니다.