douzong5473 2013-04-05 14:42
浏览 52
已采纳

unset session php

According to the manual "Do NOT unset the whole $_SESSION with unset($_SESSION) as this will disable the registering of session variables through the $_SESSION superglobal."

<?php
session_start();

$_SESSION['name'] = 'my_name';

unset($_SESSION);

echo $_SESSION['test'] = 'ok';

So according to the manual, the above code should not register the last statement. But the code outputs the string 'ok'. What is going on here?

  • 写回答

3条回答 默认 最新

  • dongyue5686 2013-04-05 14:50
    关注

    It doesn't disable sessions. It simply disables the use of session_register. This is not a big deal, as session_register has been deprecated for a long time:

    e.g. with this code:

    <?php
    
    $foo = 'bar';
    session_register('foo');
    print_r($_SESSION);
    unset($_SESSION);
    session_register('foo', 'bar2');
    print_r($_SESSION);               // line 8
    $_SESSION['foo'] = 'bar3';
    print_r($_SESSION);
    

    you get

    Array
    (
        [foo] =>
    )
    PHP Notice:  Undefined variable: _SESSION in /home/marc/z.php on line 8
    Array
    (
        [foo] => bar3
    )
    

    note the warning. You've unset $_SESSION, then try to session_register... but this doesn't create a NEW $_SESSION, it simply fails.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 STM32无法向设备写入固件
  • ¥15 使用ESP8266连接阿里云出现问题
  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并