PHP超全局变量能否修改或追加?自定义$_SERVER变量跨会话可访问吗?
PHP中$_SERVER自定义变量的跨会话访问问题
执行
$_SERVER['myVar'] = "myValue"后,其他会话的$_SERVER不会发生任何变化。
每个PHP请求对应独立的进程(或线程,取决于服务器运行模式),每个进程的$_SERVER数组都是单独初始化的,当前进程内对$_SERVER的修改完全局限在自身上下文,不会影响其他进程的$_SERVER数据。这个自定义变量无法从其他会话访问。
不同会话的请求属于不同的进程实例,各自的$_SERVER相互隔离。自定义的myVar仅存在于当前请求的生命周期内,请求结束后就会被销毁,其他会话的请求根本无法读取到这个值。
如果需要实现跨会话的数据共享,建议使用专门的存储方案:比如$_SESSION会话变量、Redis/Memcached缓存,或者数据库,不要依赖修改$_SERVER来传递跨会话数据。
内容的提问来源于stack exchange,提问作者Attila Gál
相关产品推荐
相关产品推荐

