PHP间接对象访问效率

时间:2011-11-18 23:59:56

标签: php performance variables memory

我想知道直接而不是间接地访问类变量是否更有效,即通过类方法。

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

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对我来说效率更低;或者它们都是一样的?

1 个答案:

答案 0 :(得分:0)

在PHP中,对象按值返回。该值表示对象(对象标识符值)。

接下来,存储函数的返回值并使用它10次而不是调用函数10次并直接使用返回值是完全可以的。

使用代码更有意义,如果您有一个变量名而不是读取一个变量名和一个函数名,通常代码更容易阅读。但这是你的选择。