我有类似的东西
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>
答案 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');