【发布时间】:2014-09-08 07:36:13
【问题描述】:
我有这个简单的会话类
class Session
{
public static function init() {
@session_start();
}
public static function set($key, $value) {
$_SESSION[$key] = $value;
}
public static function get($key) {
if (isset($_SESSION[$key]))
return $_SESSION[$key];
}
public static function destroy() {
unset($_SESSION);
session_destroy();
}
}
在我的另一堂课上
public function verifyFormToken($form)
{
// check if a session is started and a token is transmitted, if not return an error
if(!isset(Session::get($form.'_token'))){
return false;
}
// check if the form is sent with token in it
if(!isset($data['token'])) {
return false;
}
// compare the tokens against each other if they are still the same
if (Session::get($form.'_token') !== $data['token']) {
return false;
}
return true;
}
我可以设置会话没有问题,但是当我使用verifyFormToken() 获取它时,我收到了这个错误消息
不能在写上下文中使用函数返回值
指向这条线
if(!isset(Session::get($form.'_token'))){
【问题讨论】:
-
Isset 不是常规函数。它是语言结构。所以它只需要变量:stackoverflow.com/questions/1532693/…
-
@Phantom 我打算写这个作为答案......我同意你的看法,这就是问题所在。
-
@Phantom 正确,但是在方法上调用 isset 无论如何也没有任何意义!!从逻辑上讲,您的说法是这种方法集..虽然我知道那不是它会尝试做的..哈哈。