使用 & 获取 $_SESSION 位置

Posted

技术标签:

【中文标题】使用 & 获取 $_SESSION 位置【英文标题】:Get $_SESSION position with & 【发布时间】:2011-05-01 22:25:36 【问题描述】:

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

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

谢谢。

【问题讨论】:

如果您想允许$_SESSION[$key] 以前被设置为null,请使用array_key_exist($key, $_SESSION) 【参考方案1】:

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

见Notes in Returning References:

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

【讨论】:

【参考方案2】:

在 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;

【讨论】:

这……很有趣。我真的不知道在 PHP 中返回对局部变量的引用会做什么,因为我从未尝试过。在大多数其他语言中,这是一个严重的逻辑错误。【参考方案3】:

只需删除 & 即可。嗯……

【讨论】:

以上是关于使用 & 获取 $_SESSION 位置的主要内容,如果未能解决你的问题,请参考以下文章

getBoundingClientRect()来获取页面元素的位置”

dedecms怎么获取session

如何正确发送 $_FILES 到 $_SESSION 变量?

Java36cookie&session:登陆案例

Hibernate5-进阶添加工具类,对获取Session的方法封装

php怎样获取当前位置的经纬度?