다음 코드의 실행 결과는?

과목: PHP

문제 번호: 3036

medium
다음 코드의 실행 결과는?
<?php
class Database {
    public static $connection = "Not connected";
    
    public function connect() {
        self::$connection = "Connected";
    }
    
    public static function getStatus() {
        return self::$connection;
    }
}

$db1 = new Database();
$db1->connect();

$db2 = new Database();
echo Database::getStatus();
?>
A. Not connected
B. Connected
C. 오류 발생
D. null

정답: B



정적 속성은 클래스의 모든 인스턴스에서 공유되는 특성을 보여줍니다.

실행 과정:

1. 초기 상태: Database::$connection = "Not connected"

2. 첫 번째 객체 생성: $db1 = new Database()
⦁ 새 객체 생성하지만 정적 속성은 클래스 레벨에서 관리

3. 연결 메서드 호출: $db1->connect()
self::$connection = "Connected" 실행
⦁ 클래스의 정적 속성 값이 변경됨

4. 두 번째 객체 생성: $db2 = new Database()
⦁ 새 객체지만 정적 속성은 이미 "Connected" 상태

5. 상태 확인: Database::getStatus()
⦁ 정적 메서드로 정적 속성 값 반환
⦁ "Connected" 출력

💡 학습 팁

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