1

PHPコンストラクターに値を渡したいときは、次のようにする必要があります。

class Rump {
    private $var1;
    private $var2;
    private $var3;

    public function __construct($var1, $var2, $var3) {
        $this->var1 = $var1;
        $this->var2 = $var2;
        $this->var3 = $var3;
    }
}

それを行う簡単な方法はありますか?何かのようなもの

class Rump {
    public function __construct($var1, $var2, $var3) {
        //call a function here
    }
}
4

2 に答える 2

4
public function __construct($var1, $var2, $var3) {
    foreach (array('var1', 'var2', 'var3') as $var) {
        $this->$var = $$var;
    }
}

また:

public function __construct() {
    foreach (array('var1', 'var2', 'var3') as $i => $var) {
        $this->$var = func_get_arg($i);
    }
}

また:

public function __construct() {
    list($this->var1, $this->var2, $this->var3) = func_get_args();
}

しかし、実際には、1、2行節約して賢くしようとするよりも、退屈であっても非常に理解しやすいので、明示的な割り当てを使用することが通常は好まれます。引数が多すぎて1つずつ入力できない場合は、引数が多すぎる可能性があります。

于 2012-07-30T07:31:55.483 に答える