在函数中调用的静态变量给出错误undefined codeigniter php

时间:2017-10-18 09:39:36

标签: php codeigniter codeigniter-3 static-variables

我在控制器中定义了静态变量,但是当我在函数中使用该变量时,它会给出未定义的变量错误。

控制器

<?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');
       }
    }
}
使用jwt正确打印

$token但我收到错误

  

Undefined variable: secure_key

我尝试了不同的方法将$secure_key定义为

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

我尝试在构造函数中定义$secure_key $secure_key = "aXXXXXXXc;

但没用。为什么这样?请帮忙。我正在使用codeigniter 3

2 个答案:

答案 0 :(得分:4)

推荐方法(基于安全性

config.php中定义变量并访问它。这将像全局变量

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

像这样访问

$this->$secure_key

根据Comment by cd001

self::$secure_key 

如果功能

$this->function_name();

答案 1 :(得分:3)

由于$secure_key在您的班级中被声明为static。因此,可以使用selfclassName作为

进行访问
self::$secure_key

Quiz::$secure_key