다음 코드의 실행 결과는?
다음 코드의 실행 결과는?
<?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();
?>
정답: 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 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.