статическая переменная вызывается в функции, приводящей к ошибке неопределенного codeigniter переполнения стека

Я определил статическую переменную в контроллере, но когда я использую эту переменную в функциях, она дает неопределенную ошибку переменной.

контроллер

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Quiz extends Admin_Controller {

private static $secure_key = "aXXXXXXXXc";

public function __construct()
{
parent::__construct();
}

public function edit($id)
{
try
{
$token = JWT::encode($postdata, $secure_key);
echo "<pre>";print_r($token);exit;
}
catch(Exception $e){
$this->data['error'] = $e->getMessage();
redirect('/','refresh');
}
}
}

$token печатается правильно с JWT, но я получаю ошибку

Undefined variable: secure_key

Я пробовал разные методы, чтобы определить $secure_key как

public static $secure_key = "aXXXXXXXc;
static $secure_key = "aXXXXXXXc;

Я пытался определить $secure_key в конструкторе также как
$secure_key = "aXXXXXXXc;

но бесполезно. Почему так? Пожалуйста помоги. Я использую codeigniter 3

2

Решение

Рекомендуемый метод (На основании безопасности)

Определить переменные в config.php и получить к нему доступ. Это будет работать как Глобальная переменная

$config['secure_key'] = 'myKey';
$this->config->item('secure_key'); # get
$this->config->set_item('secure_key', 'NewKey'); # set

Получите доступ к этому, как это

$this->$secure_key

Согласно Комментарий от cd001

self::$secure_key

Если функция

$this->function_name();
4

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

поскольку $secure_key объявлен как static внутри вашего класса. Так что это может быть доступно с помощью self или же className как

self::$secure_key

или же

Quiz::$secure_key
3

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