Эффективность доступа к косвенным объектам в PHP - PullRequest
1 голос
/ 19 ноября 2011

Я хотел бы знать, является ли более эффективным доступ к переменной класса напрямую, а не косвенно, то есть с помощью метода класса.

Например, у меня есть следующий (псевдо) код:

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 голосов
/ 19 ноября 2011

В PHP объекты возвращаются по значению. Значение представляет объект тогда (значение идентификатора объекта).

Кроме того, вполне нормально хранить возвращаемое значение функции и использовать его 10 раз вместо вызова функции 10 раз и использовать возвращаемое значение напрямую.

Делайте то, что имеет больше смысла с вашим кодом, обычно код легче читать, если у вас есть одно имя переменной вместо чтения одного имени переменной и имени функции. Но это твой выбор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...