2

サブクラスから呼び出された場合でも、関数が常に現在のクラスオブジェクトを参照するようにするにはどうすればよいですか?

次のコードは次のようにエコーします。

bをエコーする必要があります:b

class superclass {

    private $a = 'a';

    public function getObjectVars() {
        return get_object_vars($this);
    }

}

class subclass extends superclass {

    private $b = 'b';

}

$obj = new subclass();

$vars = $obj->getObjectVars();
foreach ($vars as $name => $value) {

    echo $name . ': ' . $value;

}
4

1 に答える 1

5

親メソッドがそれらにアクセスするには、サブクラスの変数をプライベートではなく「保護」する必要があると思います。

于 2013-01-15T04:05:55.280 に答える