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

参见

添加备注

用户贡献的备注 4 个备注

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

<?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
5 年前
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";
Gulshan Kumar
5 年前
<?php
session_start
();
if(!isset(
$_SESSION['count'])){
$_SESSION['count'] = 1;
}else{
$_SESSION['count']++;
session_abort();
}
echo
$_SESSION['count'];
//$_SESSION['count'] 将始终为 1;
//这将始终回显 1 而不是上面的代码。
?>
zh dot hailei at gmail dot com
6 年前
demo1
<?php
session_start
();
if(!isset(
$_SESSION['count'])){
$_SESSION['count'] = 1;
}else{
$_SESSION['count']++;
}
echo
$_SESSION['count'];
// 在上面,$_SESSION['count'] 将不断增加;
?>

demo2
<?php
session_start
();
if(!isset(
$_SESSION['count'])){
$_SESSION['count'] = 1;
}else{
$_SESSION['count']++;
}
session_abort();
echo
$_SESSION['count'];
// $_SESSION['count'] 将始终为 1;
?>
To Top