如何在类中访问具有随机值的变量?

时间:2015-05-15 05:09:07

标签: php codeigniter

HTTPBody

在这里,我不能将这样的随机值分配给名为git的变量。如果有可能,我怎么能这样做? 该随机值只需要首次生成值,直到它转换为Null为止。

4 个答案:

答案 0 :(得分:4)

在构造函数中随机执行,

class Session{
        protected $git; 
        public function __construct($config = array())
        {
           //// some code
           $this->git =  md5(rand(1,6));
           $ses_id = $this->git;

        }
        public function _start_session()
        {
           //code again..
        }
      }

答案 1 :(得分:0)

在类中声明一个变量,在构造函数中初始化类中的变量,一旦在代码中的任何地方声明该类的对象,就会设置变量。

如果您不想在每个构造函数调用上更改会话变量,请更新此答案,然后使用以下过程。

class Session{
       protected $git;
        public function __construct($config = array())
        {
           $this->git  =  md5(rand(1,6)); 
           if(!isset($_SESSION['ses_id']))
            {
            $_SESSION['ses_id'] = $this->git;
            }
        }
        public function _start_session()
        {
           //code again..
        }
      }

我希望这会对你有所帮助。

答案 2 :(得分:0)

尝试在构造函数中设置变量的值。

每次创建类的实例时,

构造函数都会运行。

试试这段代码:

      class Session{
        protected $git;
        public function __construct($config = array())
        {
           //// some code
           $this->git = md5(rand(1,6));
        }
        public function _start_session()
        {
           //code again..
        }
      }

:)

答案 3 :(得分:0)

使用全局变量来跟踪随机数:

class Session{
    protected $git;
    public function __construct($config = array())
    {
        //// some code
        if (!isset($GLOBALS['random_val'])) {
            $GLOBALS['random_val'] = md5(rand(1,6));
        }

        $this->git = $GLOBALS['random_val'];
        $ses_id = $this->git;
        var_dump("Session ID: ".$ses_id);

    }

    public function _start_session()
    {
        //code again..
    }
}


$ses1 = new Session(); // Outputs string(44) "Session ID: 1679091c5a880faf6fb5e6087eb1b2dc"
$ses2 = new Session(); // Outputs string(44) "Session ID: 1679091c5a880faf6fb5e6087eb1b2dc"