PHP中的unset($ _ SESSION []),session_unset()和session_destroy()之间的区别

Ranjith Kuamr KR

我需要有关php中会话的帮助

我尝试了这段代码

<?php 
session_start();
$_SESSION['one'] = "Hello";
$_SESSION['two'] = "World";
$_SESSION['three'] = "Welcome to session";
var_dump($_SESSION);

它打印

array (size=3)
  'one' => string 'Hello' (length=5)
  'two' => string 'World' (length=5)
  'three' => string 'Welcome to session' (length=18)

然后我取消会话一

unset($_SESSION['one']);
echo "Session one unset and only session two and three exist";
var_dump($_SESSION);

它打印

Session one unset and only session two and three exist
array (size=2)
  'two' => string 'World' (length=5)
  'three' => string 'Welcome to session' (length=18)

然后,如果我破坏了会议

session_destroy();
echo "Session Destroyed <br />";
var_dump($_SESSION);

但是没有任何反应,我仍然可以将会话打印为

Session Destroyed 
array (size=2)
  'two' => string 'World' (length=5)
  'three' => string 'Welcome to session' (length=18)

但是,如果我session_destroy();再次使用它会警告我

警告:session_destroy():试图破坏未初始化的会话

而且session_destroy()如果我使用unset而不是代码

session_unset('two');
echo "Session two unset";
var_dump($_SESSION);

所有会话变量都未设置,我无法访问会话三个变量

Session two unset
array (size=0)
  empty

而不是使用的session_unset('two');,如果我使用的session_unset();话,我也它给了我同样的结果。

那么究竟是什么之间的实际差异unset($_SESSION['one'])session_unset('one')session_unset()session_destroy().

用谷歌搜索,到处都有我session_destroy()用来破坏整个会话的答案(但是在上面的代码中,我仍然可以访问会话变量),并且session_unset('one')仅用于取消设置单个会话的变量(但是在上面的代码中,如果我使用session_unset('one')所有会话变量均未设置)。

因此,请帮助我了解会话的工作原理,以及在记录用户时应使用的代码,session_unset()或者session_destroy()

阿米特·莎(Amit Shah)

非常简单

session_unset —释放所有会话变量,但不会破坏会话ID

session_destroy —销毁已注册到会话的所有数据,要调用此函数应首先注册会话。

unset($ _ SESSION ['VARIABLE_NAME']) -这将取消设置您传递的变量值。

在您的示例中,直接调用session_destroy()是不正确的,因此您可以看到会话中存在的变量值,可以为注册的会话调用session_destroy。

谢谢阿米特

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP中的unset($ _ SESSION []),session_unset()和session_destroy()之间的区别

来自分类Dev

Unset() 和 session_destroy();

来自分类Dev

session_destroy(); $ _SESSION = array(); 和$ unset($ _ SESSION); 不适用于IE10?

来自分类Dev

unset 与 session_unset 无法正常工作

来自分类Dev

session_destroy()在PHP中做什么?

来自分类Dev

在哪里呼叫session_unset(使用者)

来自分类Dev

PHP的session_unset是否会杀死包括会话ID在内的整个会话?

来自分类Dev

logout.php没有session_destroy

来自分类Dev

关于session_destroy的晦涩

来自分类Dev

PHP-session_cache_limiter()和标头之间的区别?

来自分类Dev

Magento中Mage :: registry()和Session之间的区别

来自分类Dev

session_destroy和cookie过期后无法设置cookie

来自分类Dev

为什么session_destroy无法取消设置当前会话值php

来自分类Dev

session_destroy() 不适用于服务器上的 PHP > 7.0

来自分类Dev

Laravel 中 Session::flash() 和 with() 的区别

来自分类Dev

php 中的 session_id()、session_create_id() 和 session_regenerate_id() 有什么区别?

来自分类Dev

使用$ _SESSION的PHP SESSION变量

来自分类Dev

$ this-> session-> unset_userdata不起作用?

来自分类Dev

Session(“ foo”)=“ test”和Cstr(Session(“ foo”)=“ test”之间的区别

来自分类Dev

Rails 4中的null_session和reset_session有什么区别?

来自分类Dev

SQLAlchemy中的Session和db.session有什么区别?

来自分类Dev

PHP SESSION中的多维数组

来自分类Dev

CONSTANT 中的 PHP $_SESSION 变量

来自分类Dev

PHP中删除$_SESSION的问题

来自分类Dev

MVC 中的 OnInit 和 Session

来自分类Dev

Hibernate中的Session和Connection有什么区别?

来自分类Dev

AWS boto3.session.Session()和boto3.Session()之间的区别

来自分类Dev

尽管称为 session_destroy(),但会话并未销毁

来自分类Dev

在分配?_SESSION php之前取消设置?_SESSION

Related 相关文章

  1. 1

    PHP中的unset($ _ SESSION []),session_unset()和session_destroy()之间的区别

  2. 2

    Unset() 和 session_destroy();

  3. 3

    session_destroy(); $ _SESSION = array(); 和$ unset($ _ SESSION); 不适用于IE10?

  4. 4

    unset 与 session_unset 无法正常工作

  5. 5

    session_destroy()在PHP中做什么?

  6. 6

    在哪里呼叫session_unset(使用者)

  7. 7

    PHP的session_unset是否会杀死包括会话ID在内的整个会话?

  8. 8

    logout.php没有session_destroy

  9. 9

    关于session_destroy的晦涩

  10. 10

    PHP-session_cache_limiter()和标头之间的区别?

  11. 11

    Magento中Mage :: registry()和Session之间的区别

  12. 12

    session_destroy和cookie过期后无法设置cookie

  13. 13

    为什么session_destroy无法取消设置当前会话值php

  14. 14

    session_destroy() 不适用于服务器上的 PHP > 7.0

  15. 15

    Laravel 中 Session::flash() 和 with() 的区别

  16. 16

    php 中的 session_id()、session_create_id() 和 session_regenerate_id() 有什么区别?

  17. 17

    使用$ _SESSION的PHP SESSION变量

  18. 18

    $ this-> session-> unset_userdata不起作用?

  19. 19

    Session(“ foo”)=“ test”和Cstr(Session(“ foo”)=“ test”之间的区别

  20. 20

    Rails 4中的null_session和reset_session有什么区别?

  21. 21

    SQLAlchemy中的Session和db.session有什么区别?

  22. 22

    PHP SESSION中的多维数组

  23. 23

    CONSTANT 中的 PHP $_SESSION 变量

  24. 24

    PHP中删除$_SESSION的问题

  25. 25

    MVC 中的 OnInit 和 Session

  26. 26

    Hibernate中的Session和Connection有什么区别?

  27. 27

    AWS boto3.session.Session()和boto3.Session()之间的区别

  28. 28

    尽管称为 session_destroy(),但会话并未销毁

  29. 29

    在分配?_SESSION php之前取消设置?_SESSION

热门标签

归档