我想知道直接访问类变量是否比间接(即通过类方法)更有效。
例如,我有以下(伪)代码:
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();
}
第二个方法通过getSomeObject()
方法访问$f->some_object
$f = new foo();
for(loop 10 times){
print $f->getSomeObject()->getSomeProperty();
}
我知道PHP通过引用返回对象,但方法2,对我来说看起来更低效;还是两者都一样?
在PHP中对象是按值返回的。该值代表对象(对象标识符值)。
其次,存储函数的返回值并使用它10次,而不是调用函数10次并直接使用返回值,这是完全可以的。
对你的代码做更有意义的事情,通常情况下,如果你有一个变量名而不是一个变量名和一个函数名,代码更容易阅读。但这是你的选择。