我想知道直接而不是间接地访问类变量是否更有效,即通过类方法。
例如,我有以下(伪)代码:
class foo {
private $some_object;
public function __construct(){
$this->some_object = new someObject();
}
public function getSomeObject(){
return $this->some_object;
}
} //end of class foo
第一种访问方法使用存储的对象并直接访问存储的对象
$f = new foo();
$storedObject = $f->getSomeObject();
for (loop 10 times) {
print $storedObject->getSomeProperty();
}
第二种方法通过$f->some_object
方法
getSomeObject()
$f = new foo();
for(loop 10 times){
print $f->getSomeObject()->getSomeProperty();
}
我知道PHP通过引用返回对象,但方法2对我来说效率更低;或者它们都是一样的?
答案 0 :(得分:0)
在PHP中,对象按值返回。该值表示对象(对象标识符值)。
接下来,存储函数的返回值并使用它10次而不是调用函数10次并直接使用返回值是完全可以的。
使用代码更有意义,如果您有一个变量名而不是读取一个变量名和一个函数名,通常代码更容易阅读。但这是你的选择。