2012-01-17 5 views
1

OO PHP를 처음 사용합니다. 몇 가지 질문이 있습니다.상위 클래스에서 확장 클래스 함수 호출

class a { 
protected function a1(){ 
... 
} 
} 

class b extends a { 
public function b1(){ 
... 
} 
} 

위에서 설명한 두 클래스가 있다고 가정 해 보겠습니다. 나는

나는 그것이 확장 된 클래스에서 부모 class'es 메소드를 호출하는 것이 가능, 알고
class a { 
var $b; 
function __construct() 
{ 
$b= new b(); 
} 
protected function a1(){ 
$b->b1();  
} 
} 

class b extends a { 
public function b1(){ 
... 
} 
} 

아래의 예와 같이 B의 메소드를 호출 합니다만, 역 방법이 가능 있을까? 내 말은, 부모 클래스 (이 경우, class a에서 class b의 메소드)에서 확장 클래스 메소드를 호출하는 것은 __contruct에 단순히 $this->b();으로 선언하지 않고?

답변

4

예, 당신은 확장 클래스의 메소드를 호출 할 수 있습니다.

<?php 
class a 
{ 
    public function a1() 
    { 
     $this->b1();  
    } 

    protected function b1() 
    { 
     echo 'This is in the a class<br />'; 
    } 
} 

class b extends a 
{ 
    protected function b1() 
    { 
     echo 'This is in the b class<br />'; 
    } 
} 

class c extends a 
{ 
    protected function b1() 
    { 
     echo 'This is in the c class<br />'; 
    } 
} 

$a = new a(); 
$a->a1(); 

$b = new b(); 
$b->a1(); 

$c = new c(); 
$c->a1(); 
?> 

에이 발생합니다 :이 클래스에


이이는 C 클래스에있는 B 클래스
입니다

당신은 또한 할 수있다 추상 클래스에 관심이있다. http://us3.php.net/manual/en/language.oop5.abstract.php

관련 문제