객체 지향 프로그래밍에서는 모든 데이터를 객체(object)로 취급하며, 객체가 바로 프로그래밍의 중심이 됩니다.
이로 인해 코드의 관리가 쉬워지고, 적은 노력으로도 손쉽게 코드를 변경, 유지 관리할 수 있게 됩니다.
객체 지향 프로그래밍이 가지는 특징은 다음과 같습니다.
추상화(abstraction)
캡슐화(encapsulation)
정보 은닉(data hiding)
상속성(inheritance)
다형성(polymorphism)
PHP에서는 extend 키워드를 사용하여 상속을 정의합니다.
클래스를 정의할 때 static 키워드를 사용한 프로퍼티와 메소드는 해당 클래스의 인스턴스를 생성하지 않아도 접근할 수 있게 됩니다.
이러한 프로퍼티와 메소드를 정적 멤버(static member)라고 합니다.
이러한 정적 멤버의 특징은 다음과 같습니다.
static 키워드로 선언된 정적 프로퍼티는 인스턴스화된 객체에서는 접근할 수 없습니다.
static 키워드로 선언된 정적 메소드는 인스턴스화된 객체에서도 접근할 수 있습니다.
정적 메소드 내에서는 $this 의사 변수를 사용할 수 없습니다.