2013-12-12 5 views
1
class parent 
{ 
    public function methodInParentClass() 
    { 
     echo "In parent class called from child class of:"; 
    } 
} 

class childOne extends parent 
{ 
    public $childProperty = "in childOne property"; 
} 

class childTwo extends parent 
{ 
    public $childProperty = "in childTwo property"; 
} 

좋아요, 그래서 우리는 부모 클래스를 확장하는 두 개의 자식 클래스를 갖게되었습니다. 자, 만약 내가어떤 자식 클래스가 부모 클래스를 호출하는지 결정합니다.

childTwo->methodInParentClass() 

질문 전화 :

1) 어떻게 methodInParentClass가 호출되는 클래스 확인할 수 있습니까? 참고 : 변수를 통해 이름을 전달할 수 없습니다.

2) # 1을 달성 할 수 있다면 어떻게 자녀의 클래스 속성을 호출 할 수 있습니까? 나는 새로운 클래스를 인스턴스화 한 다음 그 클래스에서 호출 할 수 있지만, 특히 프로젝트가 많이 수행 할 수 있기 때문에 성능 문제가 발생하지 않을 것인가? 사전에

감사합니다!

답변

2

귀하의 질문은 사실 거의 이해가되지 않습니다. 설명해 드리죠 :

1) 예, 당신은 부모 방법이라고 get_class($this)와 현재의 클래스를 확인할 수 있습니다 : I)의 의미에 대해 의심하는 이유는 다음과 같습니다

public function methodInParentClass() 
{ 
    echo "In parent class called from child class of:".get_class($this); 
} 

2) (입니다. 예를 들어 $childTwo->methodInParentClass()이라고 게시 한 것처럼 일부 메소드를 호출 할 때 $childTwochildTwo 클래스의 인스턴스 인 경우 - childTwo 컨텍스트로 처리합니다. 따라서 모든 '하위'속성은 현재 인스턴스의 속성, 즉 $this 변수를 통해 액세스 할 수 있습니다.

+0

hmmm ... get_class에 대한 설명서를 잘못 읽고 "부모"클래스/속성을 반환한다는 인상하에있었습니다. 내 잘못이야. –

관련 문제