CascadiaPHP 2024


(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_cache_expire() для каждого запроса (и до вызова session_start()).

Список параметров


Если value задан и не равен null, текущее время жизни заменяется на value.

Замечание: Настройка value имеет значение только, если для session.cache_limiter установлено значение, отличное от nocache.

Возвращаемые значения

Возвращает текущую настройку session.cache_expire. Возвращаемое значение должно рассматриваться в минутах, по умолчанию - 180. В случае, если изменить значение не удалось, возвращается false.

Список изменений

Версия Описание
8.0.0 value может принимать значение null.


Пример #1 Пример использования session_cache_expire()


/* установить ограничитель кеша на 'private' */

$cache_limiter = session_cache_limiter();

/* установить время жизни на 30 минут */
$cache_expire = session_cache_expire();

/* старт сессии */


"Ограничитель кеша теперь равен $cache_limiter<br />";
"Закешированные страницы сессии истекают через $cache_expire минут";

Смотрите также

add a note

User Contributed Notes 2 notes

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.
tuncdan dot ozdemir dot peng at gmail dot com
5 months ago
Using PHP 8.2


$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