如何在codeigniter中使用全局变量?

时间:2013-10-18 05:32:04

标签: php codeigniter global-variables

我正在使用codeigniter开发一个包含不同模块的应用程序,例如买家,卖家,公众。所有这些模块都使用相同的头文件。我想在买方,卖方和公共控制器中声明一个全局变量,这样当我加载一个模块的视图时,这个变量应该有助于根据它的值自定义卖方的标题部分。买家和公共模块也是如此。

我想问一下在控制器范围内声明变量然后在其视图中使用其值的方法是什么。我尝试在构造函数中声明并赋值,但在加载视图时我得到未定义的变量错误。我也尝试过这种方式:

class Seller extends CI_Controller {

public $pagetype="seller";
public function __construct()
    {
        parent::__construct();
    }

但我仍然得到未定义的变量错误。 我可以在加载视图时传递页面类型的值,但我必须为每个视图执行此操作,这是一种糟糕而繁琐的方式,因为我在每个控制器中有大约25-30个视图。

任何帮助?

3 个答案:

答案 0 :(得分:0)

考虑制作自己的类 - 查看Singleton或Registry设计模式......还要阅读:What is so bad about singletons?

答案 1 :(得分:0)

在您的控制器中,您可以使用此

在视图层中全局提供数据
$this->load->vars($data);

其中$ data是key =>的数组值。你可以把它放在你的构造函数或父构造函数

答案 2 :(得分:0)

您可以将主CodeIgniter对象分配给变量,然后使用load->get_var($key)获取视图变量。

function something() {
    $ci =& get_instance();
    $myvar = $ci->load->get_var(‘myvar);
}