Codeigniter: получите экземпляр

values ​​/ styles.xml


values ​​/ attrs.xml


    
    

values ​​/ colors.xml


    #f00

значения / dimens.xml


    100dp

Использование

DEMO

23
задан Kevin Brown 12 May 2010 в 13:56
поделиться

2 ответа

Итак, все в CodeIgniter проходит через переменную super-magic $this. Это работает только для классов, так как $this в основном определяет текущий класс.

Ваш контроллер - это класс, так что $ это здесь, что позволяет вам делать $this->load->model('whatever');

В моделях вы также используете класс. Здесь он немного отличается, так как $this содержит только полезные вещи, которые вы расширяете из Model. Тем не менее, $this остается в силе.

Когда вы используете помощника или библиотеку, вам нужно найти этот «экземпляр» или $this эквивалент.

$ci =& get_instance();

… заставляет $ci содержать тот же материал / код / ​​полезность, что и $this, даже если вы не в классе или не в классе, который его наследует.

Это объяснение для начинающих после 2-х пинт, так что это либо неправильно, либо примерно правильно. ; -)

59
ответ дан Chris Martin 29 November 2019 в 00:56
поделиться

Это реализация одноэлементного паттерна . По сути, существует только один экземпляр рассматриваемого класса, который предназначен для общего доступа. Метод get_instance является статическим и обеспечивает способ доступа к экземпляру из любой точки вашего кода.

11
ответ дан Will Vousden 29 November 2019 в 00:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: