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

Discussion in 'Программирование' started by panas, Jun 25, 2010.

  1. panas
    Offline

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

    Joined:
    Aug 22, 2009
    Messages:
    19
    Likes Received:
    0
    Gender:
    Male
    Здравствуйте. Подскажите пожалуйста, с какой целью в компонентах некоторые методы передаются по ссылке в виде:
    Код (PHP):
    1. $user = &JFactory::getUser();
    2. $model = & $this->getModel('Article');
    3. $db = & JFactory::getDBO();
    4. ...

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

    omfgpanda Недавно здесь => Cпециалист <=

    Joined:
    Jan 22, 2008
    Messages:
    673
    Likes Received:
    53
    Gender:
    Male
    это используется для совместимости с PHP 4.x
     
  4. panas
    Offline

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

    Joined:
    Aug 22, 2009
    Messages:
    19
    Likes Received:
    0
    Gender:
    Male
    Объясните пожалуйста, в чем именно заключается совместимость.
     
  5. omfgpanda
    Offline

    omfgpanda Недавно здесь => Cпециалист <=

    Joined:
    Jan 22, 2008
    Messages:
    673
    Likes Received:
    53
    Gender:
    Male
    ЧИТАЙТЕ УЧЕБНИКИ !!!!

    В 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 Недавно здесь

    Joined:
    Aug 22, 2009
    Messages:
    19
    Likes Received:
    0
    Gender:
    Male
    omfgpanda, большое спасибо Вам за объяснение.
    Читаю, видимо упустил этот момент.
     

Share This Page

Loading...