Joomla 1.5 Зачем передавать методы по ссылке?

Тема в разделе "Программирование", создана пользователем panas, 25.06.2010.

  1. panas
    Offline

    panas Недавно здесь

    Регистрация:
    22.08.2009
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    Здравствуйте. Подскажите пожалуйста, с какой целью в компонентах некоторые методы передаются по ссылке в виде:
    Код (PHP):
    1. $user = &JFactory::getUser();
    2. $model = & $this->getModel('Article');
    3. $db = & JFactory::getDBO();
    4. ...

    Это экономит ресурсы сервера, не вычисляя все заново? Или я ошибаюсь?
     
  2.  
  3. omfgpanda
    Offline

    omfgpanda специалист

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    это используется для совместимости с PHP 4.x
     
  4. panas
    Offline

    panas Недавно здесь

    Регистрация:
    22.08.2009
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    Объясните пожалуйста, в чем именно заключается совместимость.
     
  5. omfgpanda
    Offline

    omfgpanda специалист

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    ЧИТАЙТЕ УЧЕБНИКИ !!!!

    В php 4.x при использовании конструкции
    Код (PHP):
    1. $obj = new MyClass();
    2. $obj2 = $obj;

    Вы получите два совершенно разных объекта.
    При использовании амперсанда "&" мы записываем в переменную $obj2 сслыку на объект $obj
    Код (PHP):
    1. $obj2 = &$obj;

    В php 5.х этот недочет был исправлен, и при обычном присвоении объекта в новую переменную мы получаем ссылку.
    Для того что бы в php 5.x получить копию объекта, используются специальные функции, рекомендую читать мат-часть.
     
  6. panas
    Offline

    panas Недавно здесь

    Регистрация:
    22.08.2009
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    omfgpanda, большое спасибо Вам за объяснение.
    Читаю, видимо упустил этот момент.
     

Поделиться этой страницей

Загрузка...