PHP Conference Japan 2024

session_abort

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

session_abort丢弃会话数组更改并结束会话

描述

session_abort(): bool

session_abort() 结束会话而不保存数据。因此,会话数据中的原始值将被保留。

参数

此函数没有参数。

返回值

成功时返回 true,失败时返回 false

变更日志

版本 描述
7.2.0 此函数的返回类型现在为 bool。以前,它是 void

参见

添加备注

用户贡献的备注 2 条备注

parsa dot mhn at outlook dot com
9 年前
为了更好地理解此函数,您应该首先执行以下代码

<?php
// 首先选择您的路径,例如 C:/session
session_save_path('您的路径!');

session_start();

// 定义一个会话变量
$_SESSION['Key'] = 'value' ;

Var_dump(session_status() == PHP_SESSION_ACTIVE);

// 输出:bool(True),这意味着您有一个打开的会话!
?>

然后您应该执行以下代码

<?php
// 选择您在第一部分中使用的路径
session_save_path('您的路径');

session_start();

// 如果您想关闭会话并保留您选择的路径中的原始数据,您应该使用 session_abort()
session_abort();

var_dump(session_status()== PHP_SESSION_ACTIVE);

// 输出:bool(False),这意味着您的会话已关闭。
?>

因此,如果您有一个打开的会话,session_abort() 将简单地关闭它,而不会影响外部会话数据,因此您可以从您选择的路径再次重新加载您的数据。
mhd dot nickz13 at gmail dot com
6 年前
session_abort() 关闭当前会话并丢弃对当前页面中会话数组所做的更改,它不会删除会话文件
让我用一个例子来解释。
page 1.php
<?php
session_start
();
$_SESSION['city']="Sydney";
echo
"<a href=\"2.php\"> page2</a>";
?>
当您打开此页面时,服务器上会创建一个会话文件(要找出会话文件保存的位置,请运行“echo session_save_path()”), 文件名是 session_id,内容是变量

  sess_o22iabs75j93uhc7i4jf1lecjk  (文件名)
city|s:6:"Sydney";               (内容)

如果我们转到包含以下代码的 2.php

<?php
session_start
();
$_SESSION['country']="Australia";
echo
session_encode();
session_abort();
session_start();
echo
"<br>".session_encode();
?>

执行 session_abort 时,会话将关闭,并且此处是会话数组的“country”元素的更改将被丢弃。

输出:
city|s:6:"Sydney";country|s:9:"Australia";
city|s:6:"Sydney";
To Top