0

Why this code doesn't work?

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

Error

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

Thank you.

4

3 回答 3

0

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

请参阅返回参考中的注释

如果您尝试使用以下语法从函数返回引用:return ($this->value);这将不起作用,因为您试图通过引用返回表达式的结果,而不是变量。您只能通过函数引用返回变量 - 仅此而已。

于 2010-10-28T14:51:49.633 回答
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;
}
于 2010-10-28T14:52:32.363 回答
0

只需删除 & 即可。呸...

于 2010-10-28T15:06:22.723 回答