다음 코드의 실행 결과는?

과목: PHP

문제 번호: 3012

medium
다음 코드의 실행 결과는?
<?php
class Calculator {
    const PI = 3.14159;
    
    public function __construct() {
        self::PI = 3.14; // 이 라인의 결과는?
    }
    
    public function getPI() {
        return self::PI;
    }
}

$calc = new Calculator();
echo $calc->getPI();
?>
A. 3.14 출력
B. 3.14159 출력
C. 오류 발생
D. 0 출력

정답: C



이 코드는 상수의 불변성 원칙을 위반하여 오류가 발생합니다.

오류 발생 이유:
⦁ 상수는 불변: 한 번 선언된 상수는 값을 변경할 수 없음
⦁ 할당 시도: self::PI = 3.14에서 상수 값을 변경하려고 시도
⦁ Fatal Error: "Cannot assign to a class constant" 오류 발생

상수의 특징:
⦁ 선언 시점에만 값 설정 가능
⦁ 런타임에 값 변경 절대 불가
⦁ 컴파일 타임에 값이 결정됨

올바른 사용법:
const PI = 3.14159;  // 선언과 동시에 값 설정
// 이후 변경 불가

💡 학습 팁

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