session_cache_expire

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

session_cache_expire获取和/或设置当前缓存过期时间

描述

session_cache_expire(?int $value = null): int|false

session_cache_expire() 返回 session.cache_expire 的当前设置。

缓存过期时间在请求启动时重置为存储在 session.cache_expire 中的默认值 180。因此,您需要为每个请求(在调用 session_start() 之前)调用 session_cache_expire()

参数

value

如果提供了 value 且不为 null,则当前缓存过期时间将被 value 替换。

注意: 设置 value 只有在 session.cache_limiter 设置为与 nocache 不同的值时才有意义。

返回值

返回 session.cache_expire 的当前设置。返回的值应以分钟为单位,默认值为 180。如果无法更改值,则返回 false

变更日志

版本 描述
8.0.0 value 现在可以为空。

示例

示例 #1 session_cache_expire() 示例

<?php

/* 将缓存限制器设置为 'private' */

session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

/* 将缓存过期时间设置为 30 分钟 */
session_cache_expire(30);
$cache_expire = session_cache_expire();

/* 启动会话 */

session_start();

echo
"缓存限制器现在设置为 $cache_limiter<br />";
echo
"缓存的会话页面将在 $cache_expire 分钟后过期";
?>

参见

添加注释

用户贡献的注释 2 个注释

匿名
16 年前
手册可能没有足够强调这一点

** 这与会话的生命周期无关 **

无论您将此设置设置为多少,都不会改变会话在服务器上的生存时间。

这只会更改 HTTP 缓存过期时间(Expires: 和 Cache-Control: max-age 标头),它们会建议浏览器缓存页面在用户缓存中保持多长时间,而无需从服务器重新加载它们。
tuncdan dot ozdemir dot peng at gmail dot com
5 个月前
使用 PHP 8.2

session_start();

$result1 = session_cache_expire( 30 ); // 设置器,导致警告:会话缓存过期时间无法在...会话处于活动状态时更改

$result2 = session_cache_expire(); // 获取器

var_dump( $result1, $result2 ); // 打印输出:int(180) int(180) [注意:180 是默认值]

由于会话已经启动,缓存过期时间无法更改(警告消息)。但是,返回值不为 false,它仍然是原始的、未更改的值!

所以我不确定文档中所说的“无法更改值的失败”(“如果无法更改值,则返回 false”)是什么意思。
To Top