PHP 주요레퍼런스/객체지향 프로그래밍

PHP 주요레퍼런스/객체지향 프로그래밍 8

__set / __get 메소드

void __set(string name, mixed value) 클래스의 인스턴스가 가진 멤버 변수에 새로운 값을 할당할 때 호출된다. name 멤버 변수에 value 값을 할당한다. $time->hour = 22 와 같이 인스턴스가 가진 멤버 변수에 새로운 값을 할당할 경우 __set() 메소드가 정의 되어 있다면 $hour에 22라는 값일 할당되기 전에 호출된다. mixed __get(mixed name) 클래스의 인스턴스가 가진 멤버 변수를 참조하여 그 값을 얻을 때 호출된다. name 멤버 변수 값를 반환한다. echo $time->hour; 와 같이 인스턴스가 가진 멤버 변수를 참조할경우 __get() 메소드가 정의 되어 있다면 반환하기 전에 호출한다. ex) $time->hour +=25 위..

소멸자 __destruct()

function __destruct() 인스턴스의 소멸되기 시점에 자동호출된다. __construct와 반대개념이다. 이미 생성된 인스턴스를 더이상 참조하지 않을때 해당 인스턴스가 소멸되기 바로전에 호출한다. 일단 스크립트의 실행이 종료되면 스크립트에서 생성했던 인스턴스는 더 이상 참조되거나 사용되지 않는다. 그러므로 소멸자가 정의되어 있다면 스크립트 실행의 마지막 시점에서 인스턴스가 메모리로부터 제거되기 전에 인스턴스의 소멸자가 호출된다. 그러나 스크립트가 종료되기 전이라도 이미 생성된 인스턴스에 강제로 NULL값을 할당하거나 unset()과 같은 함수를 호출하면 스크립트 종료 전이라도 해당 인스턴스의 소멸자를 호출할 수 있다. 예제 예제-소멸자 강제 호출

객체지향 프로그래밍의 특징

1. 추상화 : 어떤 대상이 가진 복잡하고 구체적인 사실이나 내용보다는 문제를 해결하기 위한 관점에서 그것이 가진 근본적이고 본질적인 것을 추려내는 과정이다. 즉 어떤 사물이나 개념으로부터 그것이 가진 상태와 동작을 객체로 모델링 하는 과정 2. 상속성 : 새로운 클래스를 설계할 때 모든 것을 처음부터 정의하는 것이 아니라 이미 만들어 놓은 클래스 중에 새로 만들고자 하는 클래스와 유사한 클래스가 있으면 이클래스로부터 기본적인 데이터와 함수를 물려받고 여기에 새로운 클래스에서 필요한 데이터와 함수만을 추가하여 만드는 개념 3. 캡슐화 : 정보를 은폐한다. 클래스 사용자의 입장에서는 불필요한 정보를 숨김으로써 사용방법과 기능을 쉽게 이해하고 활용할 수 있도록 하고, 개발자의 입장에서는 자신이 개발한 클래스..