2013-03-23 4 views
0

어떻게 슈퍼 클래스 생성자에서 서브 클래스 메소드를 호출 할 수 있습니까?슈퍼 클래스의 컨스트럭터에서 서브 클래스 메소드 호출

예 서브 클래스 :

<?php 
include('../classes/A.php'); 

class B extends A { 
    public function __construct() 
    { 
     parent::__construct($this->view); 
    } 
    public function view() { 
     //something 
    } 
} 

$b = new B; 

?> 

예는 슈퍼 클래스 :

<?php 
abstract class A 
{ 
    private $callback; 

    public function __construct($callback) 
    { 
     $this->callback = $callback; 

     call_user_func($this->callback); 
    } 
} 
?> 

내가 그것을 작동하는지 확인하기 위해 무엇을 할 수 있는가?

답변

1

class B extends A { 
    public function __construct() 
    { 
     parent::__construct(array($this, 'view')); 
    } 
    public function view() { 
     //something 
    } 
} 
+0

이 나는 ​​순간에 그것을 시도 할 것이다 (호출 클래스 메소드에 call_user_func man page의 예 # 4 참조)를 호출하는 개체 인스턴스 $this를 포함한 배열과 방법을 전달합니다 :) –

+0

잘 작동합니다. 감사합니다. :) –

관련 문제