다음 코드에서 같은 클래스 내부에서 정적 메서드를 호출할 때 사용할 키워드는?

과목: PHP

문제 번호: 3030

medium
다음 코드에서 같은 클래스 내부에서 정적 메서드를 호출할 때 사용할 키워드는?
<?php
class Logger {
    public static function writeLog($message) {
        echo "Log: " . $message;
    }
    
    public function save($data) {
        // 같은 클래스의 정적 메서드 호출
        _______::writeLog("Data saved");
    }
}
?>
A. $this
B. self
C. parent
D. static

정답: B



같은 클래스 내부에서 정적 메서드를 호출할 때는 self 키워드를 사용합니다.

클래스 내부 정적 메서드 호출:
self:: - 현재 클래스의 정적 메서드/상수 접근
⦁ 장점: 클래스명 변경 시 코드 수정 불필요
⦁ 가독성: 현재 클래스 내부 요소임을 명확히 표현

다른 키워드들의 용도:
$this - 인스턴스 메서드에서 객체의 속성/메서드 접근
parent - 부모 클래스의 메서드 호출
static - 후기 정적 바인딩 (late static binding)

올바른 코드: self::writeLog("Data saved");

실행 시: save() 메서드 호출 시 "Log: Data saved" 출력

💡 학습 팁

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