PHP:过度编写会话变量

PHP:过度编写会话变量,php,session,memory-management,variables,Php,Session,Memory Management,Variables,与PHP内存处理相关的问题,来自一位对PHP还不是很有经验的人: 如果我设置了一个特定名称的PHP会话变量,然后在同一个会话期间在其他地方设置了一个完全相同名称的会话变量,那么原始变量是否被过度写入,或者会话中是否累积了垃圾 换句话说,在创建一个同名的新会话变量之前,我是否应该销毁以前的会话变量 谢谢。$\u会话与任何其他数组一样工作,因此,如果每次使用相同的键,则会覆盖该值。$\u会话与任何其他数组一样工作,因此如果每次使用相同的键,则会覆盖该值。Tom 这取决于您如何使用会话变量,但它通常意

与PHP内存处理相关的问题,来自一位对PHP还不是很有经验的人:

如果我设置了一个特定名称的PHP会话变量,然后在同一个会话期间在其他地方设置了一个完全相同名称的会话变量,那么原始变量是否被过度写入,或者会话中是否累积了垃圾

换句话说,在创建一个同名的新会话变量之前,我是否应该销毁以前的会话变量


谢谢。

$\u会话与任何其他数组一样工作,因此,如果每次使用相同的键,则会覆盖该值。

$\u会话与任何其他数组一样工作,因此如果每次使用相同的键,则会覆盖该值。

Tom

这取决于您如何使用会话变量,但它通常意味着删除该变量,确切地说,用新值替换旧值

会话变量可以存储字符串、数字甚至对象


<?php
    # file1.php
    session_start();
    $_SESSION['favcolor'] = 'green';
    $_SESSION['favfood'] = array('sushi', 'sashimi');
?>
当然,您可以按照自己的方式修改$_SESSION变量:您可以取消设置任何变量,在示例中通过$_SESSION['favfood'][]='hamburger'附加数组;等等默认情况下,它将全部存储到会话文件中,但可以是数据库。但是请注意,$\u SESSION变量只有在调用SESSION\u start之后才会神奇地起作用。这意味着,一般来说,如果您使用会话,您必须在站点的每个页面的开头调用session_start。否则,$\u SESSION只是一个普通变量,不会发生神奇的事情:-

有关更多信息,请参阅。

Tom

这取决于您如何使用会话变量,但它通常意味着删除该变量,确切地说,用新值替换旧值

会话变量可以存储字符串、数字甚至对象


<?php
    # file1.php
    session_start();
    $_SESSION['favcolor'] = 'green';
    $_SESSION['favfood'] = array('sushi', 'sashimi');
?>
当然,您可以按照自己的方式修改$_SESSION变量:您可以取消设置任何变量,在示例中通过$_SESSION['favfood'][]='hamburger'附加数组;等等默认情况下,它将全部存储到会话文件中,但可以是数据库。但是请注意,$\u SESSION变量只有在调用SESSION\u start之后才会神奇地起作用。这意味着,一般来说,如果您使用会话,您必须在站点的每个页面的开头调用session_start。否则,$\u SESSION只是一个普通变量,不会发生神奇的事情:-


有关更多信息,请参阅。

我发现情况并非如此。我不确定为什么会发生这种情况,所以我不能确切地说。看起来像是某种可变范围的问题,可能在函数中或包含的php文件中。由于一些未知的原因,我遇到了一个无法覆盖会话变量的问题。我发现在某些情况下这是不正确的。我不知道为什么会发生这种情况,所以我真的不能说。看起来像是某种可变范围的问题,可能在函数中或包含的php文件中。由于未知的原因,我遇到了一个无法覆盖会话变量的问题。