2012-04-30 2 views
0

추상 클래스에 정의 된 함수를 통해 확장 한 클래스의 인스턴스에서 변경된 추상 클래스에 정의 된 변수의 값을 어떻게 얻을 수 있습니까? 다음 코드는 내 문제를 설명하는 데 도움이 될 것입니다추상 클래스에 정의 된 함수는 변수 값을 반환하지 않습니다.

추상 클래스 :

class E404 extends Kontroler{ 
    function __construct(){ 
    } 
    function defolt(){ 
     $this->pogled = 'aplikacija/viewsi/404/404.v.htm'; 
    } 
} 

내 문제는 내가 인스턴스 내부에 $pogled의 값을 변경할 수 있다는 것입니다 : Kontroler 확장

abstract class Kontroler { 
    private $pogled; 
    function __construct(){ 
    } 
    public function pogled(){ 
     return $this->pogled; 
    } 
    abstract function defolt(); 
} 

클래스 E404 클래스이지만, $instanceOfE404->pogled();을 호출하면 PHP는 abstract 클래스로 정의 된 $pogled의 값인 null 값을 반환합니다. 왜 이런거야?

+0

$ pogled를 private가 아닌 protected로 선언하면 예상대로 작동합니까? –

답변

2

부모의 개인은 부모에게 비공개로 남아 있습니다. 하위 클래스는 보이지 않습니다. getter 함수를 생성하거나 보호합니다.

VisibilityDocs을 참조하십시오.

+0

보호되어 있습니다. 감사! – Jinx

관련 문제