모든 언어에서 변수의 사용은 매우 중요하다. 무분별한 전역변수를 사용시 리소스 관리에 심각한 문제를 발생시킬 수 있으므로 해당하는 유효영역 내에서 변수 타입이 선언되고 사용되어야 할 것이다. 변수를 선언할 때는
참조할 범위의 지정이 매우 중요하다 하겠다. php 역시 당연하며 어떻게 변수를 선언하고 사용하는 것이 효과적인지 아래에서 알아보고자 한다.
! 전역변수의 선언전역변수는
전역 범위(global scope)에서 사용가능한 변수를 의미한다. 간단하게 예를들어 전역변수는 전역범위 어디에서든 해당 변수를 참조할 수 있게된다. 그렇다면 어떻게해야 전역변수를 선언할 수 있을까?
# 전역변수 선언하는 방법위에 선언된 $test 변수는 전역변수이다. 전역변수이기 때문에 당연히
include 또는
require로 추가된 파일에도 스콥이 포함되 사용이 가능한다. 하지만 아래와 같은 경우는 어떻게 될까?
결론부터 말하자면 $test는
123이 출력되지 않는다. 그 이유는 함수 내부에서 사용된 scope 영역이 전역영역과 구분되기 때문이다. 하지만 전역변수를 함수 내부 scope으로 가져와 유효 범위로 설정할 수 있는데 이때
global 키워드를 사용한다.
보는 바와 같이 global 키워드를 사용하여 변수에 선언할 경우 전역변수가 함수내에서 사용이 가능하다. 아래와 같이 다수의 변수를 사용할 수도 있다.
# 정적변수 static variable 사용하기PHP 언어에는 정적변수(static variable)가 존재한다. 정적변수는 무엇일까? 쉽게 설명하면
정적변수는 한번 선언되고 그 값이 변경되면 변경된 값 그대로 값이 존재하게된다. 이해가 되는가?
클로저(Closure) 내에서 존재하는 특수한 함수 기능처럼 사용이 가능하다. 간단한 예제가 바로 counter() 함수를 만드는 것이다.
간단한 카운트다운 함수가 만들어졌다. static 키워드를 사용하여 이 함수는 10부터 9, 8, 7 ... 계속해서 -1을 뺀 값을 출력할 것이다.
static 변수의 장점은 함수내에 존재하는 변수가 한번 사용되고 끝나는 것이 아니라 상황에 따라 계속해서 필요한 역할을 수행할 수 있다는 점이다.
여기까지 php 변수에 대하여 알아보았다. 변수의 사용은 성능과 메모리에 영향을 미치므로 신중하게 선택해 사용해야 할 것이다.