【发布时间】:2016-06-17 03:34:51
【问题描述】:
我看过的许多关于 PHP OOP 的教程都使用 getter 和 setter 方法来设置个人属性并从对象中检索数据。但是我想知道在数组中传递所有属性的第二种方法是否可以,如果不是,为什么?
$obj = new MyClass();
选项 1:Setter 和 Getter
$obj->setKeyword("orange");
$obj->setTitle("Title Name");
$obj->setPage(4);
$obj->setContent("Blah blah blah");
$obj->setTemplate("template.tpl");
$disp = $obj->getContent();
选项 2:数组和吸气剂
$params = array('keyword' => "orange",
'title' => "Title Name",
'page' => 4,
'content' => "Blah blah blah",
'template' => "template.tpl"
);
$obj->setParams($params);
$disp = $obj->getContent();
对于我正在编写的脚本,我倾向于选项 2,因为可以为对象设置大约两打属性,我觉得也许只是将它们全部发送到一个数组中是最简单的方法做。我也不需要为每个属性创建一个 get 和 set 方法,我认为这会减少我需要为类创建的代码量。
选项 2 有什么问题吗?使用选项 1 中所示的 getter 和 setter 方法会更好吗?谢谢!
【问题讨论】:
-
如果您所做的只是设置和获取(不在方法中进行任何类型的操作),最好避免它们 IMO。
-
对象应该可以工作!用一种方法填充它并用另一种方法渲染它。默认情况下不要用 getter 和 setter 污染它。