我在控制器中定义了静态变量,但是当我在函数中使用该变量时,它会给出未定义的变量错误。
控制器
<?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
答案 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
self::$secure_key
如果功能
$this->function_name();
答案 1 :(得分:3)
由于$secure_key
在您的班级中被声明为static
。因此,可以使用self
或className
作为
self::$secure_key
或
Quiz::$secure_key