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

과목: PHP

문제 번호: 2816

medium
다음 코드의 실행 결과는 무엇인가요?
$colors = array("red", "green", "blue");
foreach ($colors as &$color) {
    if ($color == "green") {
        $color = "yellow";
    }
}
print_r($colors);
A. Array ( [0] => red [1] => green [2] => blue )
B. Array ( [0] => red [1] => yellow [2] => blue )
C. Array ( [0] => red [1] => green [2] => blue [3] => yellow )
D. 오류 발생

정답: B



& 기호는 참조(reference)를 의미하여 원본 배열을 직접 수정합니다

⦁ 참조 foreach 구조: foreach (배열 as &변수) { 코드 }

⦁ 실행 과정:
$color = "red": 조건 불만족, 변경 없음
$color = "green": 조건 만족 → "yellow"로 변경
$color = "blue": 조건 불만족, 변경 없음

⦁ 참조와 일반 변수 차이:
• 일반: foreach ($colors as $color) → 복사본 수정, 원본 유지
• 참조: foreach ($colors as &$color) → 원본 직접 수정

⦁ 주의사항:
• 참조 사용 시 원본 배열이 변경됨
• 의도하지 않은 수정을 방지하려면 일반 변수 사용

💡 학습 팁

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