Intereting Posts
Какие проверки следует использовать для предотвращения прямого доступа к страницам (с использованием PHP)? Получить текущую дату, учитывая часовой пояс в PHP? есть ли простая php-оболочка для окон? MySQL: mysql_fetch_assoc (): предоставленный аргумент не является допустимым ресурсом результата MySQL Как разобрать этот XML, используя php Сервисный локатор в Zend Framework 2 Поиск ближайшего большего разрешения с ближайшим соотношением сторон в массиве разрешений изменить цвет кнопки на клик и оставаться таким же для остальной части времени? Как узнать, откуда появилась форма? Загрузите изображение на страницу фейсбука с помощью API Как найти отсутствующие значения в последовательности с PHP? Ошибка скручивания 60, проблема с сертификатом SSL: самоподписанный сертификат в цепочке сертификатов Извлечение идентификаторов chid divs с помощью jquery? Apache 2.4 + PHP-FPM и заголовки авторизации Datatables: поиск на стороне сервера (php mysql)

CodeIgniter: глобальные Vars через контроллер и косвенная модификация перегруженного имущества

Проблема преследует меня с ранних дней CodeIgniter, и теперь, с новым CI 3, я хочу посмотреть, есть ли более элегантный способ ее решения.

// file: application/core/MY_Controller.php class MY_Controller extends CI_Controller { public $GLO; function __construct(){ parent::__construct(); $this->GLO['foo'] = 'bar'; $this->GLO['arr'] = array(); } } 

то, позже в коде, мне нужно получить и установить значения переменной $ GLO динамически. Так, например:

 // file: application/controllers/dispatcher.php class Dispatcher extends MY_Controller { function __construct() { parent::__construct(); $this->load->model('public/langs'); print_r($this->GLO); } } 

будет печатать array('foo'=>'bar, 'arr'=>Array()) который является правильным. Также в моих моделях я могу получить значения массива $ GLO таким же образом. Однако, как только мне нужно установить любые значения в массиве $ GLO, я получаю Indirect modification of overloaded property notice и поэтому я застрял. В моей модели (после выполнения запроса БД):

 // file: application/models/public/langs.php class Langs extends CI_Model { function __construct(){ parent::__construct(); } function set_global_languages(){ print_r($this->GLO); // <<< prints the same values as in the controller above $temp = array(); // [stripped db code] $temp['label'] = $row->label; $temp['id'] = $row->id; $this->GLO['arr'][] = $temp; // <<< this is where the notice happens } 

Любые подсказки, как я могу использовать $this->GLO['foo'] = 'baz'; для установки свойств этого глобального массива в моих моделях?

Приветствия.

Solutions Collecting From Web of "CodeIgniter: глобальные Vars через контроллер и косвенная модификация перегруженного имущества"