다음 코드의 실행 결과는 무엇인가요?

과목: PHP

문제 번호: 2778

hard
다음 코드의 실행 결과는 무엇인가요?
$status = "active";
$count = 0;

if ($status == "active")
    if ($count > 0)
        echo "활성 상태이고 데이터가 있습니다";
    else
        echo "활성 상태이지만 데이터가 없습니다";
A. 활성 상태이고 데이터가 있습니다
B. 활성 상태이지만 데이터가 없습니다
C. 아무것도 출력되지 않음
D. 오류 발생

정답: B



⦁ 중괄호가 없는 중첩된 if문에서 else는 가장 가까운 if와 연결됩니다

⦁ 코드 실행 흐름:
1. $status == "active" → 참 → 안쪽 if문 실행
2. $count > 00 > 0 → 거짓
3. else 블록 실행 → "활성 상태이지만 데이터가 없습니다"

⦁ 중요한 개념 - Dangling Else 문제:
• else는 문법적으로 가장 가까운 if와 매칭됨
• 중괄호 없이 중첩 시 의도와 다른 결과 가능

⦁ 권장 해결 방법:
if ($status == "active") {
    if ($count > 0) {
        echo "활성 상태이고 데이터가 있습니다";
    } else {
        echo "활성 상태이지만 데이터가 없습니다";
    }
}

⦁ 항상 중괄호를 사용하면 이런 혼동을 피할 수 있습니다

💡 학습 팁

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