function countCalls() {
    // static 키워드를 사용하여 정적 변수 $count를 선언합니다.
    // 이 변수는 함수 호출이 끝나도 값이 유지됩니다.
    static $count = 0; // static 변수는 처음 호출될 때만 초기화됩니다.

    // 현재 호출 횟수를 출력합니다.
    echo $count . "\n";
    
    // 함수가 호출될 때마다 $count의 값을 1씩 증가시킵니다.
    $count++;
    
    // 다음 호출 때에도 $count의 값이 유지되므로,
    // 이전 호출에서 증가한 값이 그대로 사용됩니다.
}

countCalls(); // 출력: 0
countCalls(); // 출력: 1
countCalls(); // 출력: 2

// 함수 외부에서는 정적 변수 $count에 접근할 수 없습니다.
echo $count; // Warning: Undefined variable $count
function countCalls() {
    // 일반 로컬 변수 $count를 선언합니다.
    // 이 변수는 함수 호출이 끝나면 사라집니다.
    $count = 0;

    // 현재 호출 횟수를 출력합니다.
    echo $count;
    
    // 함수가 호출될 때마다 $count의 값을 1씩 증가시킵니다.
    $count++;
    // 호출이 끝나면 $count는 사라지므로,
    // 증가된 값은 다음 호출에서 유지되지 않습니다.
}

countCalls(); // 출력: 0
countCalls(); // 출력: 0
countCalls(); // 출력: 0
function pageView() {
    static $views = 0; // 처음 호출 시만 초기화, 이후 호출에서도 값 유지
    $views++;
    echo "페이지 뷰: $views";
}

pageView(); // 페이지 뷰: 1
pageView(); // 페이지 뷰: 2
pageView(); // 페이지 뷰: 3
function init_database() {
    // static 변수를 사용하여 초기화 여부를 기억합니다.
    static $is_initialized = false;
    
    // 이미 초기화되었다면 함수 종료
    if ($is_initialized) {
        return;
    }
    
    echo "데이터베이스 연결을 초기화합니다.";
    // 실제 데이터베이스 연결 코드는 여기 위치
    
    // 초기화 완료 표시
    $is_initialized = true;
}

// 여러 번 호출해도 초기화 메시지는 한 번만 출력됩니다.
init_database();
init_database();
init_database();