获得$ _SESSION位置&

时间:2010-10-28 14:44:43

标签: php session reference unset

为什么这段代码不起作用?

public function get($key) {
    return isset($_SESSION[$key]) ? &$_SESSION[$key] : false;
}

错误

Parse error: syntax error, unexpected '&' in C:\Arquivos de programas\EasyPHP-5.3.3\www\myphpblog\code\sessionstorage.class.php on line 12

谢谢。

3 个答案:

答案 0 :(得分:0)

三元运算符实际上是三个expressions,例如 expr1? expr2:expr3;

请参阅Notes in Returning References

  

如果您尝试使用语法return ($this->value);从函数返回引用,则这将无效,因为您尝试通过引用返回表达式的结果而不是变量。您只能通过函数引用返回变量 - 没有别的。

答案 1 :(得分:0)

在PHP中返回引用的语法是&<function name>(){ return <referece> } 另外,Only variable references should be returned by reference

所以,你应该重写它:

function &get($key) {
    $a = false;
    if( isset($_SESSION[$key]) )
        return $_SESSION[ $key ];
    return $a;
}

答案 2 :(得分:0)

只需删除&amp;它会起作用。 DAH ...