2011-03-13 10 views
0

나는 OOP (나에게 수치스런)로 시작하기 때문에 나와 친하게 지내라.다른 클래스의 함수 사용

오류 페이지를 포함하도록 기본 응용 프로그램 클래스의 함수를 호출하는 ErrorHandler 클래스가 있습니다. 그래서 ErrorHandler 클래스의 함수에서 Application::status_page($type);을 사용하고 있습니다. 지금 나에게 총 sence를 만드는 Undefined property: ErrorHandler::$status_pages납니다

public function status_page($page) 
{ 
    // Include the status page that has been set in the routes 
    include(STATUS_PAGE_DIR . $this->status_pages[$page] . '.html'); 
} 

다음 status_page 기능 (이것은 사용자 정의 메시지의 모든 종류를 포함하는 기능이다)과 같은 방법

이다. 그러나 이것을 해결하는 가장 좋은 방법은 무엇입니까? ErrorHandler 클래스가 기본 Application 클래스를 확장하도록할까요?

나는 분명히 대답하고 응답에 미리 감사 드리길 바랍니다. 당신이 그런 식으로 그것을 사용하려는 경우

+0

은 상속을 통한 합성을 고려할 수 있습니다. btw ur ErrorHandler 클래스에 $ status_page 속성이 있습니까? – slier

+0

예 $ status_pages가 설정되었습니다. 그래서 당신은 내 기본 응용 프로그램 클래스의 구성에서 ErrorHandler와 같은 다른 모든 클래스를 시작한다는 것을 의미합니까? 따라서 정적 함수를 사용할 필요가 없습니다. – Jesse

답변

1

$의 status_pages이

또한 클래스의 헤더에 정의해야합니다, 당신은

public static function status_page($page) 

로 함수를 선언해야합니다.

+0

정적으로 사용하고 싶지 않으면 $ var = new ClassName();을 사용하여 클래스의 인스턴스를 만들어야합니다. – Trevor

+0

정적으로 만들 때 "$ this는 객체 컨텍스트에 없을 때"오류가 발생합니다. 새 인스턴스를 만드는 것은 옵션이 아닙니다. $ status_pages가 재설정됩니다. – Jesse