试图取消设置通过引用类属性传递的会话变量


Trying to unset a session variable passed by reference to a class property

是否可以通过引用将会话变量传递给类属性,这样,如果您取消设置类属性,它也将取消设置会话变量?我原以为以下内容会奏效,但会议并没有取消。

class SomeClass
{
    public function __construct()
    {
        $this->Foo =& $_SESSION['bar'];
        $this->Foo = 123;
        unset($this->Foo);
        echo $_SESSION['bar'];
    }
}
new SomeClass; // Outputs "123"

不,在PHP中取消设置引用只需删除允许引用原始值的备用句柄——它不会影响原始值本身。

没有立即可用的解决方法,在这种情况下,您必须将$_SESSION'bar'保留在单独的变量中,并在需要时将它们组合在一起。