ini_set无法设置会话变量–;PHP7.2.0及更高版本

ini_set无法设置会话变量–;PHP7.2.0及更高版本,php,php-7.2,Php,Php 7.2,下面是一个使用gc\u maxlifest的示例,但它对会话都不起作用。我尝试过的变量 <?php session_start(); ini_set('session.gc_maxlifetime', 1500); 但这并不是我问题的重点。好吧,在开始会话之前进行所有配置更改: ini_set('session.gc_maxlifetime', 1500); session_start(); 即使没有警告,在会话启动后更改设置也不会产生任何效果 警察说 会话启动期间可能会发生垃圾回收

下面是一个使用
gc\u maxlifest
的示例,但它对
会话都不起作用。
我尝试过的变量

<?php
session_start();
ini_set('session.gc_maxlifetime', 1500);

但这并不是我问题的重点。

好吧,在开始会话之前进行所有配置更改:

ini_set('session.gc_maxlifetime', 1500);
session_start();

即使没有警告,在会话启动后更改设置也不会产生任何效果

警察说

会话启动期间可能会发生垃圾回收

因此,如果在启动会话后更改该值,则不会产生任何效果。对于大多数其他会话参数也是如此


您可能正在经历的是其他更改的产物,例如添加此消息作为警告(我发现的所有其他来源都类似于,例如,仅将其作为“消息”提及,而没有相关级别)

“此上下文中的含义是,任何保存时间超过gc_maxlifetime的存储会话都应被删除。”()。因此,在会话开始后更改值会产生影响,或者我误解了什么吗?第一句话指出,这是在会话打开时完成的。更改该值不会触发垃圾收集器,因此不会基于新设置收集任何会话。我刚刚意识到我对gc的工作原理没有真正的了解。谢谢:)7.2中的PHP开发人员添加此警告。在此之前,此代码执行相同的操作,但没有警告。如下文所述,如果在
start\u session
之后调用,则这是错误的。
ini_set('session.gc_maxlifetime', 1500);
session_start();