Я хочу получить доступ к статической переменной, объявленной в Codeigniter Controller, и хочу использовать ее в библиотеке. Вот код
Расположение контроллера & Название:
Название : Console
Место нахождения : ./application/controllers/Console.php
Расположение библиотеки & Название:
Название : Api
Место нахождения : ./applications/libraries/Api.php
Console.php
class Console extends CI_Controller {
public static $access_agents = [
'2017_app_v1.0',
'2017_api_v1.0'
];
public static $developer_secret = [
'HTTP_X_DEVELOPER_SECRET' => 'XYZ'
];
}
Api.php
class Api
{
public static $CI;
public function __construct()
{
self::$CI = & get_instance();
}
public static function print_services_list($list)
{
if(self::get_custom_header(##### CALL_STATIC_VARIABLE_HERE ######))
$array = [
'status' => '200',
'message' => 'OK',
'text' => "List of APIs under this Interface gateway.",
'data' => $list
];
self::print_json_array($array);
}
}
Как я уже описал, я хочу получить доступ к статической переменной, объявленной в Console Class, сюда, где я использовал ##### CALL_STATIC_VARIABLE_HERE ######
Я пробовал такие вещи: (Я знал, что это не сработает, вероятно, и я был прав)
Console::$developer_secret
— НЕ РАБОТАЕТ
self::$CI->Console::$developer_secret
— НЕ РАБОТАЕТ
self::$CI->Console->$developer_secret
— НЕ РАБОТАЕТ
Почему бы вам не поместить эти переменные в файл конфигурации?
Создать файл PHP в application/config
папка. Назовите это как хотите. Затем поместите ваши переменные в файл, как показано ниже.
<?php
$config['static_var']['your-static-variable-name'] = 'Whatever value you want to initialize'
Если вы хотите добавить другую переменную
<?php
$config['static_var']['your-another-static-variable-name'] = 'Whatever value you want to initialize'
После сохранения файла загрузите файл конфигурации в свою библиотеку.
class Api
{
protected $CI;
protected $my_var;
protected $my_another_var;
public function __construct()
{
$this->CI =& get_instance();
$this->CI->load->config('your config file name');
$this->my_var = $this->CI->config->item('your-static-variable-name','static_var');
$this->my_another_var = $this->CI->config->item('your-another-static-variable-name','static_var');
}
}
Сейчас использую $myvar
где угодно. Надеюсь, это поможет вам.
Других решений пока нет …