PHP 8.4.0 RC4 available for testing

session_abort

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

session_abortDiscard session array changes and finish session

说明

session_abort(): bool

session_abort() finishes session without saving data. Thus the original values in session data are kept.

参数

此函数没有参数。

返回值

成功时返回 true, 或者在失败时返回 false

更新日志

版本 说明
7.2.0 The return type of this function is bool now. Formerly, it has been void.

参见

添加备注

用户贡献的备注 2 notes

up
15
parsa dot mhn at outlook dot com
9 years ago
To better understand this function you should execute this code first :

<?php
// First of all choose your path , For e.g. C:/session
session_save_path('Your Path here !');

session_start();

// Define a Session Variable
$_SESSION['Key'] = 'value' ;

Var_dump(session_status() == PHP_SESSION_ACTIVE);

// Output : bool(True) , it means you have an open session !
?>

Then you should execute this code :

<?php
// Choose the path that you used it in first part
session_save_path('Your path here');

session_start();

// If you want to close session and keep your original data in your path , you should use session_abort()
session_abort();

var_dump(session_status()== PHP_SESSION_ACTIVE);

// Output : bool(False) , it means your session closed .
?>

So if you have an open session , session_abort() will simply close it without effecting the external session data , so you can reload your data again from your path that you chose .
up
0
mhd dot nickz13 at gmail dot com
6 years ago
session_abort()  closes the current session and discards the changes applied to Session array in the current page  , it doesn't delete the session file 
let me explain with one example.
page 1.php :
<?php
session_start
();
$_SESSION['city']="Sydney";
echo
"<a href=\"2.php\"> page2</a>";
?>
when you open this page , a session file is created on the server (to find out where session files are saved run "echo session_save_path()" )  with the name of session_id  and the content of  the variable :

  sess_o22iabs75j93uhc7i4jf1lecjk  (file name)
city|s:6:"Sydney";               (content)

if we go to 2.php containing this code :

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

when session_abort is executed , the session is closed and the change which here is the 'country' element of Session array is discarded . 

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