我相信,脚本或会话结束后,全局变量和超全局变量就会死亡.在PHP中存储会话间变量的最佳方法是什么?换句话说,我希望每个会话都可以访问变量. (为了同步对服务器上资源的访问,这将是一个布尔值.)除了将值存储在文件中之外,还有其他解决方案吗?将变量保留在内存中会很好…
编辑:
我只是想能够做到这一点:
while ($beingused)
sleep(5);
$beingused = true;
// Do something
解:
非常感谢大家的帮助.这是根据您的输入提供的解决方案.
memcache_pconnect('localhost');
while (memcache_get('inuse') == 'true')
usleep(10);
memcache_set('inuse', 'true');
// Do something
memcache_set('inuse', 'false');
更新
毕竟,我实际上最终还是使用了文件解决方案.每次用户与应用程序进行交互时,都会收到一个脚本,该脚本根据用户输入而变化.我意识到脚本文件的存在可以作为布尔值的两倍,正如许多响应中所建议的那样.
解决方法:
我会使用具有特定名称的空文件(例如Linux中的PID文件).在执行命令之前,脚本将检查文件是否存在,如果不存在,它将创建文件.执行完外壳程序脚本后,删除文件.但是请注意文件系统缓存.
另一个快速的选择是将标志存储在内存数据库中,例如memcache或Redis.