다음 코드의 출력 결과는?

과목: PHP

문제 번호: 2718

medium
다음 코드의 출력 결과는?
<?php
function counter() {
    static $count = 0;
    $count++;
    echo $count . " ";
}

counter();
counter();
counter();
?>
A. 1 1 1
B. 0 0 0
C. 1 2 3
D. 0 1 2

정답: C



static 키워드로 선언된 변수는 함수가 종료되어도 값을 유지합니다.

static 변수의 특징:
1. 초기화: 첫 호출 시 한 번만
2. 값 유지: 함수 종료 후에도 보존
3. 범위: 여전히 지역 변수 (함수 내부만)

실행 과정:
⦁ 첫 번째 호출: $count = 0 → 1 증가 → 1 출력
⦁ 두 번째 호출: $count = 1 (유지) → 1 증가 → 2 출력
⦁ 세 번째 호출: $count = 2 (유지) → 1 증가 → 3 출력

일반 변수와 비교:
function normal() {
    $count = 0;  // 매번 0으로 초기화
    $count++;
    echo $count;  // 항상 1
}

💡 학습 팁

이 문제를 포함한 PHP 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.