Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Mожет ли один объект содержать несколько экземпляров классов?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
shum0531
Отправлено: 07 Февраля, 2014 - 12:25:40
Post Id



Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Возможно не корректный вопрос, ща попробую разжевать что я имею ввиду.
Изучая CodeIgniter мне стала интересна такая конструкция

Данный код в контроллере моего приложения. Что он делает, пытался я разобраться.
this - ну это понятно, ссылкой на вызываемый объект CI_Controller.
uri - это уже интересней, это как то относится к классу CI_URI
uri_to_assoc - метод класса CI_URI

Похоже на синглтон, но какая связь между классами uri, db и т.д.
Понравился такой подход, но не могу его понять. Покажите, плиз, на пальцах как это работает
 
 Top
esterio
Отправлено: 07 Февраля, 2014 - 12:31:16
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




PHP:
скопировать код в буфер обмена
  1. class Foo
  2. {
  3.     public $baz;
  4.  
  5.     public function __construct()
  6.     {
  7.          $this->baz = new Bar();
  8.      }
  9. }
  10.  
  11. class Bar
  12. {
  13.     public function someFunc()
  14.     {
  15.           echo 'Hello World';
  16.     }
  17. }
  18.  
  19. $foo = new Foo();
  20. $foo->baz->someFunc();
 
 Top
caballero
Отправлено: 07 Февраля, 2014 - 12:31:36
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




при чем тут синглотон

просто поле одного класса содержит объект другого класса


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
IllusionMH
Отправлено: 07 Февраля, 2014 - 12:31:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




shum0531, uri это просто свойство объекта this.
где-то раньше в конструкторе CI_Controller(условный код)


Чтобы понять как работает - подумайте о двумерном массиве. только там будут [] а тут ->
 
 Top
shum0531
Отправлено: 07 Февраля, 2014 - 12:41:28
Post Id



Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




IllusionMH пишет:
shum0531, uri это просто свойство объекта this.

я то же так думал как и вы.

код из контроллера системы:
PHP:
скопировать код в буфер обмена
  1. class CI_Controller {
  2.  
  3.         private static $instance;
  4.  
  5.         /**
  6.          * Constructor
  7.          */
  8.         public function __construct()
  9.         {
  10.                 self::$instance =& $this;
  11.                
  12.                 /* ...  */
  13.         }
  14.  
  15.         public static function &get_instance()
  16.         {
  17.                 return self::$instance;
  18.         }
  19. }

где свойство uri, вижу только экземпляр instance
 
 Top
esterio
Отправлено: 07 Февраля, 2014 - 12:45:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




PHP:
скопировать код в буфер обмена
  1. CI_Controller::$instance->uri = new CI_URI();
 
 Top
shum0531
Отправлено: 07 Февраля, 2014 - 12:59:10
Post Id



Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Вы правы! Нашел все ответы на свои вопросы. Спасибо!
closed
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB