【发布时间】:2017-08-15 03:21:21
【问题描述】:
我还是 OOP 的新手,这可能是一个简单的问题,不确定我是否想多了。
假设我们有一个像下面这样的简单类,我们可以用它来实例化一个可以生成数组的对象:
class gen_arr {
public $arr = array();
public function fill_arr() {
$this->arr["key"] = "value";
}
}
// instantiate object from gen_arr
$obj = new gen_arr();
现在如果你想获取 object 的 数组项的 value,你会先生成一个数组,然后回显这个值,例如:
$arr = $obj->fill_arr();
回声 $arr["key"];
或者你会直接访问对象的属性吗?
echo $obj->arr["key"]
在实际代码中,属性是私有的,并且有一个方法可以查看属性数组,以上只是为了简化问题。
当涉及到这种情况时,是否有性能考虑和/或只是最佳实践?
更新:
从答案中仍然不清楚最好的方法是从属性生成一个数组并访问该数组还是直接访问该属性(通过 getter 方法)
【问题讨论】:
-
如果属性是
public,这个类的意义何在? -
它将是私有的,并且会有一个 getter 方法,我只是将其作为示例。从答案中仍然不清楚最好的方法是从属性生成一个数组并访问该数组还是直接访问该属性(通过getter方法)
-
嗯,目的是什么?你想达到什么目标?你想防止什么?
-
我想访问属性内的数据,我只是不知道是应该“直接”访问它(通过 getter 方法),还是先从它生成一个数组