PHP - 변수 범위
안녕하세요, PHP 개발자 지망생 여러분! 오늘 우리는 PHP의 변수 범위 세계에서 흥미로운 여정을 떠납니다. 여러분의 친절한 이웃 컴퓨터 선생님이자 저는 이 필수 개념을 통해 더 나은, 더 효율적인 코드를 작성하는 데 도움을 드리기 위해 여러분을 안내하겠습니다. 그러면 가상의 메모지를 집고, 함께 뛰어들어보겠습니다!
변수 범위란 무엇인가요?
예제로 넘어가기 전에 변수 범위가 무엇인지 이해해 보겠습니다. 범위는 변수가 살고 놀아하는遊び터라고 생각해 보세요. 어떤 변수는遊び터의 어디서나 놀 수 있습니다(전역 범위), 반면에 다른 변수는 특정 구역에만 제한됩니다(지역 범위). 이러한遊び터를 이해하는 것은 깨끗하고 버그 없는 코드를 작성하는 데 매우 중요합니다.
지역 범위
우리의 첫 번째 예제를 통해 지역 범위를 설명해 보겠습니다.
예제 1: 지역 변수
function greet() {
$name = "Alice";
echo "Hello, $name!";
}
greet(); // 출력: Hello, Alice!
echo $name; // 이 문장은 오류를 발생시킵니다
이 예제에서 $name
은 greet()
함수 안에서만 놀 수 있는 조숙아처럼 보입니다. 함수 밖에서는 보이지 않거나 접근할 수 없습니다. 이를 지역 범위라고 합니다.
예제 2: 함수 매개변수
function calculateArea($length, $width) {
$area = $length * $width;
echo "The area is: $area";
}
calculateArea(5, 3); // 출력: The area is: 15
echo $length; // 이 문장은 오류를 발생시킵니다
여기서 $length
과 $width
도 calculateArea()
함수에 대해 지역적입니다. 이들은 방문자처럼 함수 내에서만 존재합니다.
"global" 키워드
이제 어디서나 놀 수 있는 인기 아이, 즉 전역 변수를 만나보겠습니다!
예제 3: global 키워드 사용
$globalGreeting = "Hello, World!";
function greetGlobally() {
global $globalGreeting;
echo $globalGreeting;
}
greetGlobally(); // 출력: Hello, World!
global
키워드를 사용하여 PHP에게 "이 변수를 전역遊び터에서 놀 수 있게 해 줘!"라고 말하고 있습니다. 이는 우리의 변수에 전역 접근 권한을 주는 것과 같습니다.
$GLOBALS 배열
PHP는 모든 전역 변수를 포함한 $GLOBALS
라는 매우 멋진 배열을 제공합니다. 이는遊び터의 모든 인기 아이들의 목록과 같습니다.
예제 4: $GLOBALS 배열 사용
$fruit = "Apple";
function describeFruit() {
echo "The fruit is: " . $GLOBALS['fruit'];
}
describeFruit(); // 출력: The fruit is: Apple
$GLOBALS를 사용하면 함수 내에서 전역 변수에 접근하는 또 다른 방법입니다. 이는遊び터의 디렉토리를 찾아 특정 아이가 어디에서 놀고 있는지 확인하는 것과 같습니다.
정적 변수
이제 정적 변수에 대해 이야기해 보겠습니다. 정적 변수는遊び터를 나왔지만 마지막 게임을 기억하는 신비한 아이들입니다!
예제 5: 정적 변수
function countVisits() {
static $count = 0;
$count++;
echo "You've visited this function $count time(s).";
}
countVisits(); // 출력: You've visited this function 1 time(s).
countVisits(); // 출력: You've visited this function 2 time(s).
countVisits(); // 출력: You've visited this function 3 time(s).
정적 변수는 기억력이 뛰어난 선수들입니다. 함수가 실행이 끝난 후에도 값을 기억합니다. 여러 번의 함수 호출 간에 값을 추적하는 데 매우 유용합니다.
실용적인 응용
이제 우리가 배운 지식을 실제 상황에 적용해 보겠습니다!
예제 6: 간단한 카운터 애플리케이션
$globalCounter = 0;
function incrementCounter() {
global $globalCounter;
static $localCounter = 0;
$globalCounter++;
$localCounter++;
echo "Global counter: $globalCounter, Local counter: $localCounter<br>";
}
incrementCounter(); // 출력: Global counter: 1, Local counter: 1
incrementCounter(); // 출력: Global counter: 2, Local counter: 2
incrementCounter(); // 출력: Global counter: 3, Local counter: 3
echo "Final global counter: $globalCounter"; // 출력: Final global counter: 3
이 예제에서 우리는 전역 변수와 정적 변수를 사용하여 간단한 카운터 애플리케이션을 만들고 있습니다. 전역 카운터는 어디서나 접근할 수 있으며, 지역 정적 카운터는 함수 호출 간에 값을 기억합니다.
변수 범위 방법 요약
여기서 다양한 변수 범위 처리 방법을 요약한 표를 제공합니다:
방법 | 설명 | 사용 사례 |
---|---|---|
지역 변수 | 함수 내에 정의된 변수 | 특정 함수 내에서만 필요한 변수 사용 시 |
global 키워드 | 함수 내에서 전역 변수에 접근 | 함수 내에서 전역 변수를 수정할 때 |
$GLOBALS 배열 | 모든 전역 변수를 포함한 배열 | 복잡한 스크립트에서 전역 변수에 접근할 때 |
정적 변수 | 함수 호출 간에 값이 유지되는 변수 | 여러 번의 함수 호출 간에 상태를 유지할 때 |
변수 범위를 이해하는 것은遊び터의 규칙을 알고 있는 것과 같습니다. 이를 통해 깨끗하고 효율적인 코드를 작성하고, 프로그램의 다른 부분 간의 충돌을 피할 수 있습니다.
이 강의를 마무리하며, PHP 변수 범위遊び터의 여정을 즐겼기를 바랍니다. 계속 연습하고 실험하고, 가장 중요한 것은 코딩을 즐기세요! 누구 knows, 다음 PHP遊び터 챔피언이 바로 당신일지도 모릅니다! ?????
Credits: Image by storyset