将一堆参数传递给类的正确方法

时间:2011-12-13 17:41:04

标签: php oop class parameters

我有类似的东西

class Demo
{
    public function __construct()
    {
    }
}

需要将一堆参数(最多20个)传递给Demo类(名称,电子邮件,地址等)。

据我所知,有两种方法可以做到:

第一种方式 - 传递数组:

$params = array('name' => 'test', 'email' => 'test' ... );
$demo = new Demo($params);

然后将结构更改为__conctruct($ data)。

第二种方式 - 为每个参数创建一个setter,所以我们做这样的事情:

$demo = new Demo();
$demo->setName('test');
$demo->setEmail('test@test.com');

哪一个更好?第二种方式需要大量输入,但我认为它遵循OOP原则。还有其他设置参数的方法吗?

编辑:当然我们可以直接传递参数$ demo = new Demo('test','test@test.com'...)但你需要知道参数的顺序,这可能是个问题。< / p>

1 个答案:

答案 0 :(得分:0)

补充第二种方式,你可以随时链接你的二传手。

class Foo {
public function setA($a) {
    $this->a = $a;
    return $this;
}

public function setB($b) {
    $this->b = $b;
    return $this;
}
}

$foo = new Foo();
$foo->setA('a')->setB('b');