OOP 변경기록

PHP 5 OOP 모델의 변경점은 이곳에 기록됩니다. 기능의 설명과 다른 유의점은 OOP 5 문서에 정리되어 있습니다.

버전 설명
5.5.0 추가됨: 예외 핸들링을 위한 finally.
5.4.0 추가됨: traits.
5.4.0 변경됨: abstract 클래스가 생성자를 정의한다면, 그 정의는 강제성을 가집니다.
5.3.3 변경됨: 네임스페이스에 대해 클래스명의 마지막 요소와 같은 이름을 가지는 메서드는 더 이상 생성자 로 다뤄지지 않습니다. 이 변경은 네임스페이스를 사용하지 않는 클래스에는 영향을 미치지 않습니다.
5.3.0 변경됨: 인터페이스의 메서드를 구현할때 해당 메서드가 기본값을 가질경우, 더 이상 인터페이스의 기본값과 일치시키지 않아도 됩니다.
5.3.0 변경됨: 이제 클래스를 값을 이용해 참조하는게 가능합니다 (예, echo $classname::constant;). 변수의 값은 키워드가 될수 없습니다(예, self, parent 또는 static).
5.3.0 변경됨: overloading 메서드가 static 으로 선언 되어 있을경우 E_WARNING 수준의 에러가 발생합니다. 또한, public 액세스가 필수가 되었습니다.
5.3.0 변경됨: 5.3.0 이전에서는, __autoload() 함수 내부에서 던져진 예외는 catch 블록으로 잡을 수 없었으며, fatal error 가 되었습니다. 이제는 __autoload 함수 에서 던진 예외를 catch 블록으로 잡을수 있습니다. 단, 한가지 제약이 있습니다. 사용자 정의 예외를 던질때, 사용자 정의 클래스는 이미 존재해야 합니다. __autoload 함수를 재귀적으로 사용자 정의 예외 클래스를 자동로드 하는데 사용할 수 있을 것입니다.
5.3.0 추가됨: __callStatic 메서드.
5.3.0 추가됨: 클래스의 상수 와 프로퍼티 정의시 heredocnowdoc 을 사용할 수 있습니다. 주의: heredoc 값은 쌍따옴표 처리된 문자열과 같은 규칙을 따릅니다. (예., 변수를 사용하지 못함).
5.3.0 추가됨: 늦은 정적 바인딩.
5.3.0 추가됨: __invoke() 메서드.
5.2.0 변경됨: __toString() 메서드는 echo 또는 print 와 같이 사용되는 경우에만 호출 되었습니다. 하지만 지금은, 어떠한 문자열 컨텍스트에서든지 호출되며(예. printf()%s 지정자) 다른 타입의 컨텍스트에서는 호출되지 않습니다(예. %d 지정자). PHP 5.2.0 부터, __toString 을 통하지 않는 객체의 문자열화는 E_RECOVERABLE_ERROR 수준 에러를 발생시킵니다.
5.1.3 변경됨: PHP 5 의 초기 버전에서, var 의 사용은 사용하지 않을 것으로 간주되었으며, E_STRICT 수준 에러를 발생시켰습니다. 이제, 더이상 사용하지 않을것으로 간주되지 않으며, 에러도 발생시키지 않습니다.
5.1.0 변경됨: __set_state() 정적 메서드는 이제 var_export() 로 내보내진 클래스들도 호출 가능합니다.
5.1.0 추가됨: __isset()__unset() 메서드.

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top