为什么这段代码不起作用?
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
谢谢。
答案 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 ...