我想在Zend Framework中使用像$ _SESSION这样的变量,我使用一个类来保存一个静态变量,如下所示:
class Login {
private static $login = "false";
public static function changeStatus($status)
{
self::$login = $status;
print_r(self::$login);
}
public static function returnStatus()
{
return self::$login;
}
}
之后,当我成功登录时,我将调用Login :: changeStatus函数并传递" true"在AuthAction中使用此函数,如下所示:
Login::changeStatus("true");
$this->_redirect('/user/list');
但是在listAction中,我试图获得Login :: $ login的值,它仍然是" false"。
那么如何将Login :: $ login更改为" true"当我从listAction()访问它时,我会得到" true"?
我尝试使用Zend_Registry,因为doydoy44说,但我收到了这条消息"没有注册密钥' login'" :(
答案 0 :(得分:1)
你的静态变量被声明为私有,所以我认为你不能从你的控制器访问这个变量Login :: $ login。
最简单的方法应该是将此变量声明为public,如果这些变量无用,请停止使用任何访问器。 (或在控制器中使用您的Login :: returnStatus()方法)
答案 1 :(得分:0)
您可以像这样使用Zend_Registry:
// In authAction instead of Login::changeStatus("true"); :
Zend_Registry::set('login', true);
// In listAction:
if (Zend_Registry::isRegistered('login'))
$login = Zend_Registry::get('login');
else
$login = false;
我希望它会对你有所帮助。 :)