<?php
ob_start('ob_gzhandler');
session_save_path('2;D:/sessionFile/sessionFile');
@session_start();
$_SESSION['user'] = 'lowell';
$user = $_SESSION['user'];
session_register($user);
echo $user . '<br />';
session_unset();
echo $user . '<br />';
session_destroy();
echo $user . '<br />';
?>
为什么session_unset()与session_destroy()后会话变量还在?还显示lowell?
这个表达式中 $user 是 $_SESSION['user'] 的一份拷贝,不是引用。换句话说 session_unset(), session_destroy(); 只是把$_SESSION['user']摧毁了,$user仍是一个独立的变量。而session_register($user); 只是注册了一个变量 $_SESSION['lowell'](另,该函数已被最新版的PHP-5.4移除,不建议使用!)
ob_start('ob_gzhandler');
session_save_path('2;D:/sessionFile/sessionFile');
@session_start();
$_SESSION['user'] = 'lowell';
echo $_SESSION['user'] . '<br />';
session_unset();
echo $_SESSION['user'] . '<br />';
session_destroy();
echo $_SESSION['user'] . '<br />';
?>显示却:
lowellNotice: Undefined index: user in D:\Apache Group\Apache2\htdocs\PHPProject\index3.php on line 15
Notice: Undefined index: user in D:\Apache Group\Apache2\htdocs\PHPProject\index3.php on line 18怎么解决这个错误?
你显示的应该 echo $_SESSION['user'];
两个完全不同的变量,虽然他用了她进行了初始化
这不是指针,简单copy地址,而是进行内容复制,
所以互不影响
另外你明明uset和destroy掉了,还想取session值,php当然提醒你没有这个索引值了