다음 코드에서 상수 명명 규칙과 접근 방법에 대한 설명으로 올바른 것은?

과목: PHP

문제 번호: 3013

hard
다음 코드에서 상수 명명 규칙과 접근 방법에 대한 설명으로 올바른 것은?
<?php
class DatabaseConfig {
    const host_name = "localhost";     // 상수 A
    const PORT_NUMBER = 3306;          // 상수 B
    const Database_Name = "myapp";     // 상수 C
    
    public function getConnectionInfo() {
        return self::host_name . ":" . self::PORT_NUMBER . "/" . self::Database_Name;
    }
}

$config = new DatabaseConfig();
echo DatabaseConfig::PORT_NUMBER;  // 접근 방법 1
echo $config->getConnectionInfo();  // 접근 방법 2
?>
A. 모든 상수명이 권장 규칙을 따르고 있으며, 두 접근 방법 모두 올바름
B. 상수 A와 C는 명명 규칙 위반이지만 코드는 정상 실행됨
C. 접근 방법 1은 잘못되었고, 접근 방법 2만 올바름
D. 상수는 대소문자를 구분하지 않으므로 모든 상수명이 동일함

정답: B



이 코드는 상수 명명 규칙과 다양한 접근 방법을 보여주는 복합적인 예제입니다.

상수 명명 규칙 분석:
⦁ 상수 A (host_name) - 소문자와 언더스코어 사용 (비권장)
⦁ 상수 B (PORT_NUMBER) - 모든 대문자와 언더스코어 (권장)
⦁ 상수 C (Database_Name) - 혼합 케이스 사용 (비권장)

권장 명명 규칙:
⦁ 모든 글자를 대문자로 작성
⦁ 단어 구분은 언더스코어 사용
⦁ 예시: MAX_SIZE, DEFAULT_VALUE, API_URL

접근 방법 분석:

접근 방법 1 (DatabaseConfig::PORT_NUMBER) - 정상 실행
⦁ 클래스 외부에서 직접 접근
⦁ 객체 생성 없이 접근 가능

접근 방법 2 ($config->getConnectionInfo()) - 정상 실행
⦁ 객체의 메서드를 통한 간접 접근
⦁ 메서드 내부에서 self::로 상수 접근

💡 학습 팁

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