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);
    }   
}
?>

機能させるにはどうすればよいですか?

4

1 に答える 1

1

オブジェクトインスタンスを含む配列$thisと、呼び出すメソッドを渡します

(クラスメソッドの呼び出しに関するcall_user_funcマニュアルページの例4を参照してください)

class B extends A {
    public function __construct()
    {
        parent::__construct(array($this, 'view'));
    }
    public function view() {
        //something
    }
}
于 2013-03-23T12:04:31.367 に答える