다음 코드의 출력 결과는?
다음 코드의 출력 결과는?
<?php
$x = 5;
function test1() {
$x = 10;
}
function test2() {
global $x;
$x = 15;
}
test1();
echo $x . " ";
test2();
echo $x;
?>
정답: C
global
키워드 없이는 전역 변수를 수정할 수 없고, global
을 사용하면 전역 변수를 직접 수정할 수 있습니다.실행 과정 분석:
1.
$x = 5
→ 전역 변수 x = 52.
test1()
호출:⦁
$x = 10
→ 지역 변수 생성⦁ 전역 변수는 영향 없음
⦁ 함수 종료 후 지역 변수 소멸
3.
echo $x
→ 전역 변수 출력 = 54.
test2()
호출:⦁
global $x
→ 전역 변수 참조⦁
$x = 15
→ 전역 변수 수정5.
echo $x
→ 전역 변수 출력 = 15최종 출력: "5 15"
핵심 개념:
⦁ global 없음 → 새로운 지역 변수
⦁ global 있음 → 전역 변수 참조/수정
⦁ 함수는 기본적으로 격리된 범위
실무 팁:
// 명확한 방법
function updateGlobal() {
$GLOBALS['x'] = 20; // 명시적
}
💡 학습 팁
이 문제를 포함한 PHP 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.