International PHP Conference Berlin 2025

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 的设定值。

请求开始的时候,缓存到期时间会被重置为 180,并且保存在 session.cache_expire 配置项中。 因此,针对每个请求,需要在 session_start() 函数调用之前 调用 session_cache_expire() 来设置缓存到期时间。

参数

value

如果指定 value 且不为 null,就使用 value 的值替换当前缓存到期时间。

注意: 仅在 session.cache_limiter 的设置值 不是 nocache 的时候, 才可以设置 value 参数。

返回值

返回 session.cache_expire 的当前设置值, 以分钟为单位,默认值是 180 (分钟)。如果更改值失败,则返回 false

更新日志

版本 说明
8.0.0 value 现在可以为 null。

示例

示例 #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
"The cache limiter is now set to $cache_limiter<br />";
echo
"The cached session pages expire after $cache_expire minutes";
?>

添加备注

用户贡献的备注 2 notes

up
176
Anonymous
16 years ago
The manual probably doesn't stress this enough:

** This has nothing to do with lifetime of a session **

Whatever you set this setting to, it won't change how long sessions live on your server.

This only changes HTTP cache expiration time (Expires: and Cache-Control: max-age headers), which advise browser for how long it can keep pages cached in user's cache without having to reload them from the server.
up
0
tuncdan dot ozdemir dot peng at gmail dot com
9 months ago
Using PHP 8.2

session_start();

$result1 = session_cache_expire( 30 ); // setter, results in Warning: Session cache expiration cannot be changed when a session is active in ...

$result2 = session_cache_expire(); // getter

var_dump( $result1, $result2 ); // prints out: int(180) int(180) [note: 180 is the default value]

Because the session was already started, cache expiration could not be changed (warning message). However, the return value is NOT false, it is still the original, unchanged value!

So I do not know what is considered a failure to change the value as per the documentation (`On failure to change the value, false is returned.`).
To Top