问题 用unset()替换session_unregister


我正在移动一个遗留系统,我没有从一个服务器(php 5.2)创建到一个较新的系统(php 5.3),并且很多系统使用session_unregister。我很欣赏这个现在已经在5.3中弃用了,所以我应该继续使用unset($ _ SESSION ['myVar'])替换所有情况,还是会导致某些事情破裂?

更好的是,如果unset()不正确,是否有替代方案可以实现我需要的相同功能


4868
2017-07-19 14:23


起源

+1用于消除已弃用的函数。 unset($_SESSION['key']) 应该没事。 - Michael Berkowski


答案:


您可以使用取消设置特定会话变量 unset($_SESSION['yourvar']);,但请注意手册中的这一部分:

请勿使用unset($ _ SESSION)取消整个$ _SESSION   禁用通过$ _SESSION注册会话变量   超全局。

(从: http://php.net/manual/en/function.session-unset.php )


13
2017-07-19 14:25



好的,谢谢,未设置()最好的方法呢? (只是想确保我没有用更糟糕的代码替换坏代码) - Andy
是的它是:手册上的注释甚至暗示它,就在黄色警告部分的上方。 - Nanne
谢谢......我再次阅读了公告并抓住了。评论已删除。对于歇斯底里的葡萄干:我已经放置了一个指向PHP项目的弃用维基的链接,该链接显示已经弃用了“未设置的强制转换”,而不是unset()函数/方法本身。 Nanne指出了我的错误,我删除了他回复的上一条评论。 - Kevin_Kinsey


  • session_unregister()

自PHP 5.3.0开始,此函数已被弃用,自PHP 5.4.0起已被删除。 http://php.net/manual/en/function.session-unregister.php

但是如果你需要“释放所有会话变量”。使用

  • session_unset();

http://php.net/manual/en/function.session-unset.php


0
2017-08-05 06:28