【发布时间】:2014-02-08 11:22:52
【问题描述】:
我在默认索引页面中有这段代码:
<?php
$_SESSION['user'] = 'Bill';
print $_SESSION['user'];
$_SESSION = array();
session_destroy();
$_SESSION['user'] = 'Andy';
print $_SESSION['user'];
?>
输出如下:
Bill
Warning: session_destroy(): Trying to destroy uninitialized session in C:\xampp\htdocs\DSP\index.php on line 15
Andy
显然我必须使用 session_start() 来初始化会话,但这些是我的问题:
1) 但是,为什么我可以在没有 session_start() 函数的情况下存储会话?
2) 现在我把 session_start() 函数放在代码的顶部:
<?php
session_start();
$_SESSION['user'] = 'Bill';
print $_SESSION['user'];
$_SESSION = array();
session_destroy();
$_SESSION['user'] = 'Andy';
print $_SESSION['user'];
?>
现在输出如下:
Bill
Andy
我现在的问题是:
3) 为什么 Andy 会打印在输出上?为什么编译器不给我错误,必须再次启动会话,因为我之前使用命令 session_destroy() 销毁了它?
非常感谢大家!
【问题讨论】:
-
你能在没有火或任何能源的情况下准备食物吗?不,你不能,因为没有它你就不能准备食物。同样,如果您不启动 session_start();您的代码将不知道有关会话的任何信息。
-
我知道,但我的问题是为什么即使 session_start 不存在,也会设置此示例中的会话。