что означает исходный код «новый CI»? в поджигателях?

Я хочу исследовать исходный код пирограмм, и когда я читаю Base.phpЯ не могу понять следующий код

new CI;

файл system/cms/libraries/Base.php

Мои проблемы

  1. почему там нет имени переменной, как $CI = new CI;
  2. почему его можно использовать как CI::$APP->config->item('controller_suffix') в своем подклассе MX_Controller там нет имени переменной?

Большое спасибо!!!

1

Решение

  1. Этот объект не хранится в переменной, потому что кажется, что нам не нужно манипулировать им. С другой стороны, посмотрите на его конструктор: он делает много вещей (так как он также вызывает конструктор CI_Controllerкоторый в свою очередь загружает Loader и инициализируй его, ….)

Итак, мы собираем его не для того, чтобы потом манипулировать им, а для того, чтобы запустить код в его конструкторе.

  1. Мы можем использовать CI::$APP-> whatever так как $APP является статическим членом, следовательно, он не требует наличия экземпляра CI манипулировать
0

Другие решения

Объявление свойств или методов класса как статических делает их доступными без необходимости создания экземпляра класса. Свойство, объявленное как статическое, не может быть доступно с экземпляром объекта класса (хотя статический метод может).

посмотреть статику на php.net

0

По вопросам рекламы [email protected]