【问题标题】:Can i use the below to unset several sessions我可以使用以下内容取消设置几个会话吗
【发布时间】:2015-06-06 02:45:53
【问题描述】:

我有几个这样的会话:

$_SESSION['search']['max']
$_SESSION['search']['order']

目前,我用单独的语句取消设置它们中的每一个:

if(isset($_SESSION['search']['max']) && $_SESSION['search']['max'] != ''){
        unset($_SESSION['search']['max']);
    }
if(isset($_SESSION['search']['order']) && $_SESSION['search']['order'] != ''){
        unset($_SESSION['search']['order']);
    }

我的问题是 - 我可以使用下面的一般 unset 语句而不是为每个会话使用单独的语句:

if(isset($_SESSION['search']) && $_SESSION['search'] != ''){
            unset($_SESSION['search']);
        }

分别声明每个未设置的语句有什么好处吗?

注意:我需要同时取消所有设置,这意味着我不需要保留一个或多个以再次使用,因此我认为一个语句应该可以,但需要确保我没有遗漏任何东西。

谢谢大家!

【问题讨论】:

  • 是的,你可以使用这个。

标签: php session unset


【解决方案1】:

我有几个这样的会话:

不。你有一个会话。这些只是变量。

我的问题是 - 我可以使用下面的一般 unset 语句而不是为每个 session 变量单独声明:

  if(isset($_SESSION['search']) && $_SESSION['search'] != ''){
        unset($_SESSION['search']);
    }

你可以。这只是普通的数组。而unset($a)$a = null 是一样的,所以你的代码就是:

if(isset($_SESSION['search']) && $_SESSION['search'] != ''){
    $_SESSION['search'] = null;
}

意味着$_SESSION['search'] 数组的每个 元素都将被丢弃。

但是没有取消会话!
您的会话仍然有效,您只需丢弃会话中的一些变量!

分别声明每个未设置的语句有什么好处吗?

有。您可以控制保留哪些变量(例如,“我希望 A 和 B 保留,但未设置 C 和 D”)。但是,如果您喜欢“不,我确定我不需要它们中的任何一个”,那么您可以批量取消设置它们,这没有任何问题。

【讨论】:

  • 感谢您的详细解答。现在我肯定比以前知道的更多!
猜你喜欢
  • 2019-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-27
  • 1970-01-01
  • 2011-05-11
相关资源
最近更新 更多