CodeIgniter中未定义的全局变量

时间:2013-05-01 07:59:47

标签: php codeigniter global-variables

我想在CodeIgniter控制器中使用全局变量,我尝试使用此帖Codeigniter global variable within controller中的解决方案,但它对我不起作用。我想是因为首先我调用session函数,并在用户验证后使用user函数,但网页已刷新并且值丢失。有没有在第一个函数调用后的某个地方存储变量,稍后从第二个函数中检索它?

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

  class Auth extends CI_Controller
{
    //Constructor
      function __construct() {
          parent::__construct();
      }

    public $user;

    public function session()
    {

        require 'facebook/facebook.php';

    $facebook = new Facebook(array(  
    'appId'  => '***********',  
    'secret' => '*****************',  
    'cookie' => true
    ));  

    $user = $facebook->getUser();

      if ($user) {
        $uid = $facebook->getUser();

      } else {
        // proceed knowing you require user login and/or authentication
        $login_url = $facebook->getLoginUrl();  
          header("Location: ".$login_url);  
      }
    }

    public function user()
    {
        echo ($user);
    }

}

3 个答案:

答案 0 :(得分:0)

你可以在config文件夹下的constant.php文件中定义全局常量,你可以通过使用那个常量来实现它的任何地方

定义( 'MY_VAR', 'MY_VALUE');

现在如果你想使用它就像做回声MY_VAR;

答案 1 :(得分:0)

检查链接,我认为它适合您 http://ellislab.com/forums/viewthread/155141/

答案 2 :(得分:0)

当你直接调用函数 user()时,PHP将分配变量,变量不存在,因为它没有被定义。也为了引用全局变量你应该使用 $ this-&gt;用户。在这种情况下,变量 $ user 应该是会话变量。