0

私はこのようなクラスを書きました:

class config {
    private $conf;

    public function __call( $confName, $args ){
        if (  0 == count($args) && isset($this->conf[$confName]) ){
            return $this->conf[$confName];
        }
        else {
            $this->conf[$confName] = $args[0];
            return $this;
        }
    }
}

および $conf = new config();

$conf->と入力したときに提案リストを取得したいのですが、

理想はありますか、それは不可能ですか?

4

2 に答える 2

0
class config {
    private $conf;

    public function none_existent_method1(){
        // forward the call to __call(__FUNCTION__, ...)
        return call_user_func(array($this, '__call'),
            __FUNCTION__, func_get_args());
    }

    public function none_existent_method2(){
        // forward the call to __call(__FUNCTION__, ...)
        return call_user_func(array($this, '__call'),
            __FUNCTION__, func_get_args());
    }

    public function __call( $func, $args ){
        if (  0 == count($args) && isset($this->conf[$func]) ){
            return $this->conf[$func];
        }
        else {
            $this->conf[$func] = $args[0];
            return $this;
        }
    }
}

メソッドを追加して__call自分に転送するだけです。

他の方法もありますが、すべて関数を宣言する必要があります。

于 2013-06-18T10:13:08.873 に答える