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


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

Контроллер

<?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 2

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();

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

self::$secure_key

Или

Quiz::$secure_key