PHP间接对象访问效率


PHP indirect object access efficiency

我想知道直接访问类变量是否比间接(即通过类方法)更有效。

例如,我有以下(伪)代码:

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次并直接使用返回值,这是完全可以的。

对你的代码做更有意义的事情,通常情况下,如果你有一个变量名而不是一个变量名和一个函数名,代码更容易阅读。但这是你的选择。